games-store-back/controllers/sales.js

79 lines
2.3 KiB
JavaScript

const router = require('express').Router();
const rescue = require('express-rescue');
const sales = require('../services/sales');
const OK = 200;
router.get('/', rescue(async (req, res) => {
const result = await sales.getAll();
res.status(result.status).json({ sales: [...result.sales] });
}));
router.get('/:id', async (req, res) => {
const { id } = req.params;
const result = await sales.getById(id);
if (result.code) {
return res.status(result.status).json({
err: {
code: result.code,
message: result.message,
},
});
}
res.status(OK).json(result);
});
router.post('/', rescue(async (req, res) => {
const soldProducts = req.body;
const result = await sales.create(soldProducts); // If registration successful, its log is returned ...
if (result.code) { // ... otherwise its error logs are returned.
return res.status(result.status).json({
err: {
code: result.code,
message: result.message,
},
});
}
res.status(OK).json({ _id: result, itensSold: [...soldProducts] }); // If there is no error, the "insertId" is catch and forward it here.
}));
router.put('/:id', rescue(async (req, res) => {
const { id } = req.params;
const soldProducts = req.body;
const result = await sales.update(id, soldProducts); // If update successful, its log is returned ...
if (result.code) { // ... otherwise its error logs are returned.
return res.status(result.status).json({
err: {
code: result.code,
message: result.message,
},
});
}
res.status(OK).json({ _id: id, itensSold: [...soldProducts] });
}));
router.delete('/:id', rescue(async (req, res) => {
const { id } = req.params;
const result = await sales.deleteIt(id); // Here is returned "deleted data product" OR "data Errors" from SERVICES.
if (result.code) { // Check if SERVICES retuned some "data errors"
return res.status(result.status).json({
err: {
code: result.code,
message: result.message,
},
});
}
res.status(OK).json(result);
}));
module.exports = router;