/** * Required External Modules and Interfaces */ import express, {Request, Response} from 'express'; import * as SessionService from './session.service'; import * as UserService from '../user/user.service'; import logger from '../../../middleware/logger'; import {Guid} from 'guid-typescript'; /** * Router Definition */ export const sessionRouter = express.Router(); sessionRouter.get('/:isDevCall', async (req: Request, res: Response) => { try { let userId = (req.query.userId ?? '').toString(); let sessionId = (req.query.sessionId ?? '').toString(); let sessionKey = (req.query.sessionKey ?? '').toString(); let useDev: boolean = (req.params.isDevCall ?? '') === 'dev'; // TBD if (userId === '' || sessionId === '' || sessionKey === '') { res.status(400).send({ 'status': 'WRONG_PARAMS', 'message': 'Missing or wrong parameters' }); return; } if (!await UserService.checkSession(useDev, userId, sessionId, sessionKey)) { res.status(403).send({ 'status': 'INVALID_SESSION', 'message': 'The user or session could not be found or the session is invalid' }); return; } let data = await SessionService.getSessionData(useDev, userId); res.status(200).send(data); } catch (e) { let errorGuid = Guid.create().toString(); logger.error('Error handling a request: ' + e.message, {reference: errorGuid}); res.status(500).send({ 'status': 'PROCESSING_ERROR', 'message': 'Internal Server Error. Try again later.', 'reference': errorGuid }); } });