synt_backend
Version:
Synt light-weight node backend service
69 lines (60 loc) • 1.68 kB
JavaScript
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;