@codetanzania/ewea-reports
Version:
Common reports for EWEA
250 lines (233 loc) • 5.51 kB
JavaScript
import { getString } from '@lykmapipo/env';
import { Router } from '@lykmapipo/express-rest-actions';
import { getPartyAnalysis } from './aggregations/party.aggregations';
import { getEventAnalysis } from './aggregations/event.aggregations';
import { getEventCaseAnalysis } from './aggregations/case.aggregations';
import { getDispatchAnalysis } from './aggregations/dispatch.aggregations';
import { getOverviewAnalysis } from './aggregations/overview.aggregations';
/* constants */
const API_VERSION = getString('API_VERSION', '1.0.0');
const PATH_OVERVIEW = '/reports/overviews';
const PATH_INDICATORS = '/reports/indicators';
const PATH_RISKS = '/reports/risks';
const PATH_ACTIONS = '/reports/actions';
const PATH_NEEDS = '/reports/needs';
const PATH_EFFECTS = '/reports/effects';
const PATH_RESOURCES = '/reports/resources';
const PATH_PARTIES = '/reports/parties';
const PATH_ALERTS = '/reports/alerts';
const PATH_EVENTS = '/reports/events';
const PATH_DISPATCHES = '/reports/dispatches';
const PATH_CASES = '/reports/cases';
/**
* @name ReportHttpRouter
* @namespace ReportHttpRouter
*
* @description Common reports for EWEA
*
* @see {@link https://github.com/CodeTanzania/ewea}
*
* @author lally elias <lallyelias87@gmail.com>
* @license MIT
* @since 0.1.0
* @version 1.0.0
* @public
*/
const router = new Router({
version: API_VERSION,
});
/**
* @name GetOverviewReport
* @memberof ReportHttpRouter
* @description Returns overview report
*
* @author lally elias <lallyelias87@gmail.com>
* @license MIT
* @since 0.1.0
* @version 1.0.0
* @public
*/
router.get(PATH_OVERVIEW, (request, response, next) => {
return getOverviewAnalysis({}, (error, report) => {
if (error) {
return next(error);
}
return response.ok(report);
});
});
/**
* @name GetIndicatorReport
* @memberof ReportHttpRouter
* @description Returns indicators report
*
* @author lally elias <lallyelias87@gmail.com>
* @license MIT
* @since 0.1.0
* @version 1.0.0
* @public
*/
router.get(PATH_INDICATORS, (request, response) => {
response.ok({});
});
/**
* @name GetRiskReport
* @memberof ReportHttpRouter
* @description Returns risks report
*
* @author lally elias <lallyelias87@gmail.com>
* @license MIT
* @since 0.1.0
* @version 1.0.0
* @public
*/
router.get(PATH_RISKS, (request, response) => {
response.ok({});
});
/**
* @name GetActionReport
* @memberof ReportHttpRouter
* @description Returns actions report
*
* @author lally elias <lallyelias87@gmail.com>
* @license MIT
* @since 0.1.0
* @version 1.0.0
* @public
*/
router.get(PATH_ACTIONS, (request, response) => {
response.ok({});
});
/**
* @name GetNeedReport
* @memberof ReportHttpRouter
* @description Returns needs report
*
* @author lally elias <lallyelias87@gmail.com>
* @license MIT
* @since 0.1.0
* @version 1.0.0
* @public
*/
router.get(PATH_NEEDS, (request, response) => {
response.ok({});
});
/**
* @name GetEffectReport
* @memberof ReportHttpRouter
* @description Returns effects report
*
* @author lally elias <lallyelias87@gmail.com>
* @license MIT
* @since 0.1.0
* @version 1.0.0
* @public
*/
router.get(PATH_EFFECTS, (request, response) => {
response.ok({});
});
/**
* @name GetResourceReport
* @memberof ReportHttpRouter
* @description Returns resources report
*
* @author lally elias <lallyelias87@gmail.com>
* @license MIT
* @since 0.1.0
* @version 1.0.0
* @public
*/
router.get(PATH_RESOURCES, (request, response) => {
response.ok({});
});
/**
* @name GetPartyReport
* @memberof ReportHttpRouter
* @description Returns parties report
*
* @author lally elias <lallyelias87@gmail.com>
* @license MIT
* @since 0.1.0
* @version 1.0.0
* @public
*/
router.get(PATH_PARTIES, (request, response, next) => {
return getPartyAnalysis({}, (error, report) => {
if (error) {
return next(error);
}
return response.ok(report);
});
});
/**
* @name GetAlertReport
* @memberof ReportHttpRouter
* @description Returns alerts report
*
* @author lally elias <lallyelias87@gmail.com>
* @license MIT
* @since 0.1.0
* @version 1.0.0
* @public
*/
router.get(PATH_ALERTS, (request, response) => {
response.ok({});
});
/**
* @name GetEventReport
* @memberof ReportHttpRouter
* @description Returns events report
*
* @author lally elias <lallyelias87@gmail.com>
* @license MIT
* @since 0.1.0
* @version 1.0.0
* @public
*/
router.get(PATH_EVENTS, (request, response, next) => {
return getEventAnalysis({}, (error, report) => {
if (error) {
return next(error);
}
return response.ok(report);
});
});
/**
* @name GetDispatchReport
* @memberof ReportHttpRouter
* @description Returns dispatches report
*
* @author lally elias <lallyelias87@gmail.com>
* @license MIT
* @since 0.1.0
* @version 1.0.0
* @public
*/
router.get(PATH_DISPATCHES, (request, response, next) => {
return getDispatchAnalysis({}, (error, report) => {
if (error) {
return next(error);
}
return response.ok(report);
});
});
/**
* @name GetCaseReport
* @memberof ReportHttpRouter
* @description Returns cases report
*
* @author lally elias <lallyelias87@gmail.com>
* @license MIT
* @since 0.1.0
* @version 1.0.0
* @public
*/
router.get(PATH_CASES, (request, response, next) => {
return getEventCaseAnalysis({}, (error, report) => {
if (error) {
return next(error);
}
return response.ok(report);
});
});
/* expose report router */
export default router;