79 lines
1.8 KiB
JavaScript
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);
|
|
};
|