import {HttpMethod, Route, StatusCodes, Request, Response} from 'org.crazydoctor.expressts'; import ServerApp from '..'; import { ISession } from '../session/ISession'; import DBEvents from '../db/DBEvents'; class GetDataStatisticsClass extends Route { protected action = (req: Request, res: Response): any => { const session = req.session as ISession; if(!session.isEditor) { res.status(StatusCodes.FORBIDDEN).send('Access denied'); return; } if(ServerApp.SourcesUpdating) { res.status(StatusCodes.ACCEPTED).send('Sources are being updated'); return; } const cls = req.params.class; const { page, pageSize } = req.query; DBEvents.getClassEventsCount(cls).then((count) => { DBEvents.getClassEvents(cls, parseInt(page as string), parseInt(pageSize as string)).then((classEvents) => { res.set({ 'Content-Type': 'application/json' }); res.status(StatusCodes.OK).send({ count: count, records: JSON.parse(JSON.stringify(classEvents).replaceAll('__static__', '')) }); }); }); }; protected method = HttpMethod.GET; protected order = 10; protected route = '/data/statistics/class/:class'; } export default GetDataStatisticsClass;