Files
overseer/src/routes/item.js
Gregory Ballantine 82c2b91090
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Removed activities table; this will be handled after users are implemented
2024-05-21 09:35:39 -04:00

79 lines
1.8 KiB
JavaScript

const db = require('../models');
const Item = db.items;
// GET - /item/add
exports.getAdd = async function(req, res) {
res.render('item/add.twig');
};
// POST - /item/add
exports.postAdd = async function(req, res) {
const item = await Item.create({
name: req.body.item_name,
serialNumber: req.body.item_serial,
skuNumber: req.body.item_sku,
purchasedFrom: req.body.item_purchase_from,
purchasedAt: req.body.item_purchase_date,
manufacturer: req.body.item_manufacturer,
type: req.body.item_type,
});
console.log(`Saved item ${item.name} to the database.`);
res.redirect('/');
};
// GET - /item/{id}
exports.getItem = async function(req, res) {
const item = await Item.findAll({
where: {
id: req.params.id,
},
});
res.render('item/view.twig', {
item: item[0],
});
};
// GET - /item/{id}/edit
exports.getItemEdit = async function(req, res) {
const item = await Item.findAll({
where: {
id: req.params.id,
},
});
res.render('item/edit.twig', {
item: item[0],
});
};
// POST - /item/{id}/edit
exports.postItemEdit = async function(req, res) {
// fetch item from DB
const itemSearch = await Item.findAll({
where: {
id: req.params.id,
},
});
// retrieve the item record from the array for ease of use
const item = itemSearch[0];
// update item attributes
item.name = req.body.item_name;
item.serialNumber = req.body.item_serial;
item.skuNumber = req.body.item_sku;
item.purchasedFrom = req.body.item_purchase_from;
item.purchasedAt = req.body.item_purchase_date;
item.manufacturer = req.body.item_manufacturer;
item.type = req.body.item_type;
// save attribute changes
await item.save();
// redirect user to item page
res.redirect('/item/' + item.id);
};