UNPKG

synt_backend

Version:

Synt light-weight node backend service

116 lines (90 loc) 2.59 kB
const express = require("express"); const router = express.Router(); const userHelper = require("../helpers/user"); import * as ValidationHelper from "../helpers/validations"; import { getDefaultReminderById, getDefaultReminders, postDefaultReminder, } from "../database/defaultReminders"; function validateUserAndVme(next) { return async (req, res) => { const { t } = req; const user = await userHelper.getAuthUser(req); if (user) { // verify vme and get vme let VmeValidation = await ValidationHelper.validateVme(t, user.VMEId); //TODO: Validate user roles if (!VmeValidation.success) { return res.json(VmeValidation); } const { VME } = VmeValidation; return await next(req, res, { user, VME }); } return res.json({ success: false, }); }; } const getReminder = validateUserAndVme(async (req, res) => { const { ReminderId } = req.params; const Reminder = await getDefaultReminderById({ reminderId: ReminderId, }); return res.json({ success: true, Reminder }); }); const getReminders = validateUserAndVme(async (req, res) => { const Reminders = await getDefaultReminders(); return res.json({ success: true, Reminders }); }); const deleteReminder = validateUserAndVme(async (req, res) => { const { ReminderId } = req.params; const Reminder = await getDefaultReminderById({ reminderId: ReminderId, }); if (Reminder) { await Reminder.destroy(); } return res.json({ success: true, Reminder }); }); const postReminder = validateUserAndVme(async (req, res) => { const { t } = req; const { id, Label, recipient, dateOfReceiving } = req.body; let errors = {}; if (!Label) { errors.name = t( "api.reminders.errors.messageRequired", "Message is required" ); } if (!recipient) { errors.recipient = t( "api.reminders.errors.recipientRequired", "Recipient is required" ); } if (!dateOfReceiving) { errors.dateOfReceiving = t( "api.reminders.errors.dateOfReceivingRequired", "Receiving date is required" ); } if (Object.keys(errors).length > 0) { return res.json({ success: false, errors, }); } const Reminder = await postDefaultReminder({ dateOfReceiving, label: Label, recipient, reminderId: id, }); return res.json({ success: true, Reminder }); }); // routes router.get("/:ReminderId", getReminder); router.get("/", getReminders); router.post("/", postReminder); router.delete("/:ReminderId", deleteReminder); module.exports = router;