refactor: rename rollbar token & minor cleanup (#1593)

This commit is contained in:
Andrew Thauer
2020-07-13 15:19:22 -04:00
committed by GitHub
parent fe049a18de
commit d4d54ee7e3
5 changed files with 46 additions and 87 deletions
+37 -72
View File
@@ -30,7 +30,7 @@ export async function createRouter(
): Promise<express.Router> {
const router = Router();
const logger = options.logger.child({ plugin: 'rollbar' });
const accessToken = !options.rollbarApi ? getRollbarToken(logger) : '';
const accessToken = !options.rollbarApi ? getRollbarAccountToken(logger) : '';
if (options.rollbarApi || accessToken) {
const rollbarApi =
@@ -38,63 +38,43 @@ export async function createRouter(
router.use(express.json());
const runAsync = createRunAsyncWrapper(logger);
router.get('/projects', async (_req, res) => {
const projects = await rollbarApi.getAllProjects();
res.status(200).header('').send(projects);
});
router.get(
'/projects',
runAsync(async (_req, res) => {
const projects = await rollbarApi.getAllProjects();
res.status(200).header('').send(projects);
}),
);
router.get('/projects/:id', async (req, res) => {
const { id } = req.params;
const projects = await rollbarApi.getProject(id);
res.status(200).send(projects);
});
router.get(
'/projects/:id',
runAsync(async (req, res) => {
const { id } = req.params;
const projects = await rollbarApi.getProject(id);
res.status(200).send(projects);
}),
);
router.get('/projects/:id/items', async (req, res) => {
const { id } = req.params;
const projects = await rollbarApi.getProjectItems(id);
res.status(200).send(projects);
});
router.get(
'/projects/:id/items',
runAsync(async (req, res) => {
const { id } = req.params;
const projects = await rollbarApi.getProjectItems(id);
res.status(200).send(projects);
}),
);
router.get('/projects/:id/top_active_items', async (req, res) => {
const { id } = req.params;
const query = req.query;
const items = await rollbarApi.getTopActiveItems(id, query as any);
res.status(200).send(items);
});
router.get(
'/projects/:id/top_active_items',
runAsync(async (req, res) => {
const { id } = req.params;
const query = req.query;
const items = await rollbarApi.getTopActiveItems(id, query as any);
res.status(200).send(items);
}),
);
router.get('/projects/:id/occurance_counts', async (req, res) => {
const { id } = req.params;
const query = req.query;
const items = await rollbarApi.getOccuranceCounts(id, query as any);
res.status(200).send(items);
});
router.get(
'/projects/:id/occurance_counts',
runAsync(async (req, res) => {
const { id } = req.params;
const query = req.query;
const items = await rollbarApi.getOccuranceCounts(id, query as any);
res.status(200).send(items);
}),
);
router.get(
'/projects/:id/activated_item_counts',
runAsync(async (req, res) => {
const { id } = req.params;
const query = req.query;
const items = await rollbarApi.getActivatedCounts(id, query as any);
res.status(200).send(items);
}),
);
router.get('/projects/:id/activated_item_counts', async (req, res) => {
const { id } = req.params;
const query = req.query;
const items = await rollbarApi.getActivatedCounts(id, query as any);
res.status(200).send(items);
});
}
router.use(errorHandler());
@@ -102,32 +82,17 @@ export async function createRouter(
return router;
}
function createRunAsyncWrapper(logger: Logger) {
return function runAsyncWrapper(callback: express.RequestHandler) {
return function runAsync(
req: express.Request,
res: express.Response,
next: express.NextFunction,
) {
return Promise.resolve(callback(req, res, next)).catch(error => {
logger.error(error);
next(error);
});
};
};
}
function getRollbarToken(logger: Logger) {
const token = process.env.ROLLBAR_TOKEN || '';
function getRollbarAccountToken(logger: Logger) {
const token = process.env.ROLLBAR_ACCOUNT_TOKEN || '';
if (!token) {
if (process.env.NODE_ENV !== 'development') {
throw new Error(
'Rollbar token must be provided in ROLLBAR_TOKEN environment variable to start the API.',
'Rollbar token must be provided in ROLLBAR_ACCOUNT_TOKEN environment variable to start the API.',
);
}
logger.warn(
'Failed to initialize rollbar backend, set ROLLBAR_TOKEN environment variable to start the API.',
'Failed to initialize rollbar backend, set ROLLBAR_ACCOUNT_TOKEN environment variable to start the API.',
);
}