65 lines
1.6 KiB
JavaScript
65 lines
1.6 KiB
JavaScript
'use strict';
|
|
|
|
const config = require('config');
|
|
const express = require('express');
|
|
const router = express.Router();
|
|
|
|
const originalEvents = require('../event-data.js');
|
|
|
|
router.put('/', (req, res) => {
|
|
const event = req.body;
|
|
event.id = originalEvents.length;
|
|
originalEvents.push(event);
|
|
res.status(200).send([event]);
|
|
});
|
|
|
|
router.get('/google-api-key', (req, res) => {
|
|
return res.status(200).send({ key: config.get('googleApi') });
|
|
});
|
|
|
|
router.get('/:eventId?', (req, res) => {
|
|
const { eventId } = req.params;
|
|
if (eventId) {
|
|
const event = originalEvents.find(
|
|
item => item.id === eventId
|
|
);
|
|
if (!event) {
|
|
return res.status(404).send({ message: `Event ${eventId} not found.` });
|
|
}
|
|
return res.status(200).send([event]);
|
|
}
|
|
|
|
return res.status(200).send(originalEvents);
|
|
});
|
|
|
|
router.post('/:eventId', (req, res) => {
|
|
const { eventId } = req.params;
|
|
if (!eventId) {
|
|
return res.status(400).send({ message: `Invalid event.` });
|
|
}
|
|
const event = originalEvents.find(
|
|
item => item.id === eventId
|
|
);
|
|
if (!event) {
|
|
res.status(404).send({ message: `Event ${eventId} not found.` });
|
|
}
|
|
res.status(200).send([event]);
|
|
});
|
|
|
|
router.delete('/:eventId', (req, res) => {
|
|
const { eventId } = req.params;
|
|
if (!eventId) {
|
|
return res.status(400).send({ message: `Invalid event.` });
|
|
}
|
|
const eventIndex = originalEvents.findIndex(
|
|
item => item.id === eventId
|
|
);
|
|
if (eventIndex === -1) {
|
|
res.status(404).send({ message: `Event ${eventId} not found.` });
|
|
}
|
|
originalEvents.splice(eventIndex, 1);
|
|
res.status(200).send({ message: `Event ${eventId} deleted.` });
|
|
});
|
|
|
|
module.exports = router;
|