UNPKG

synt_backend

Version:

Synt light-weight node backend service

69 lines (60 loc) 1.68 kB
import { Router } from "express"; const router = Router(); const db = require("./../mysql/models/index"); const userHelper = require("./../helpers/user"); const notifier = require("./../helpers/notifier"); router.get("/", getRequests); router.post("/", postRequest); async function getRequests(req, res) { try { // verify vme and get vme db.Request.findAll({ include: db.User }).then((Requests) => { return res.json({ success: true, Requests }); }); } catch (error) { return res.json({ success: false, error }); } } async function postRequest(req, res) { const { t } = req; try { let User = await userHelper.getAuthUser(req); if (User) { const { message, category } = req.body; const Request = { message, category, UserId: User.id, }; if (!message || message === "") { return res.json({ success: false, errors: { message: t( "api.requests.errors.messageRequired", "A message is required." ), }, }); } //Send a mail to admins (new entry) db.User.findAll({ where: { is_admin: true } }) .then((Admins) => { Admins.forEach((Admin) => { notifier.sendMail(Admin.email, "new_request", { Request, Admin, User, }); }); }) .catch((err) => console.error(err)); db.Request.create(Request).then(() => { return res.json({ success: true }); }); } } catch (error) { return res.json({ success: false, error }); } } module.exports = router;