/** * Required External Modules and Interfaces */ import express, {Request, Response} from 'express'; import * as AddHighlightService from './addHighlights.service'; import logger from '../../../middleware/logger'; import {Guid} from 'guid-typescript'; /** * Router Definition */ export const addHighlightRouter = express.Router(); addHighlightRouter.get('/', (req: Request, res: Response) => { try { res.status(200).send('GET endpoint not defined.'); } 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 }); } }); addHighlightRouter.post('/', (req: Request, res: Response) => { try { // Check input params const body = req.body; if (body.access_key !== process.env.TWITCH_HIGHLIGHTS_ACCESS_KEY) { // Unauthorized, return error res.type('application/json'); res.status(403).send({'status': 'error', 'description': 'Unauthorized.'}); } else if (!body.streamer || !body.stream_id || !body.stream_game || !body.timestamp || !body.description || !body.username) { // Missing params, return error res.type('application/json'); res.status(400).send({'status': 'error', 'description': 'Missing parameters.'}); } else { // Everything fine, return success AddHighlightService.createHighlightEntry(body); res.type('application/json'); res.status(200).send({'status': 'success', 'description': ''}); } } 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 }); } });