77 lines
2.0 KiB
JavaScript
77 lines
2.0 KiB
JavaScript
const express = require("express");
|
|
const router = express.Router();
|
|
|
|
const db = require("../dependencies");
|
|
|
|
router.get("/", (req, res) => {
|
|
const accs = db.prepare("SELECT * FROM accounts").all();
|
|
new_accs = [];
|
|
for (let i=0; i < accs.length; i++) {
|
|
accs[i]["subaccounts"] = [];
|
|
}
|
|
console.log(accs)
|
|
res.send(accs);
|
|
});
|
|
|
|
|
|
|
|
router.post("/", (req, res) => {
|
|
const name = req.body.name;
|
|
const des = req.body.description;
|
|
const type = req.body.type;
|
|
const qualifiedName = req.body.parentAccount + ":" + name
|
|
const new_acc = db.prepare(`INSERT INTO accounts (name, qualifiedName, description, type, balance, localBalance) VALUES (?, ? ,?, ?, 0, 0)`).run(name, qualifiedName,des, type)
|
|
res.status(204).send()
|
|
|
|
console.log(new_acc);
|
|
});
|
|
|
|
router.get("/:account", (req, res) => {
|
|
const acc = db
|
|
.prepare("SELECT * FROM accounts WHERE name = ?")
|
|
.get(req.params.account);
|
|
|
|
if (acc == undefined) {
|
|
res.status(404).send({
|
|
code: 404,
|
|
message: "Account not found",
|
|
additionalPropl: {}
|
|
});
|
|
} else {
|
|
acc['entries'] = []
|
|
console.log(acc)
|
|
res.send(acc);
|
|
}
|
|
});
|
|
|
|
|
|
|
|
router.put("/:account", (req, res) => {
|
|
const oldname = req.params.account;
|
|
const name = req.body.name;
|
|
const description = req.body.description;
|
|
const type = req.body.type;
|
|
const qualifiedName = req.body.parentAccount + ":" + name;
|
|
|
|
const acc = db.prepare(`UPDATE accounts SET description = ?, name = ?, qualifiedName = ?, type = ? WHERE name=?`).run(description, name, qualifiedName, type, oldname);
|
|
|
|
if (acc == undefined) {
|
|
res.status(404).send({
|
|
code: 404,
|
|
message: "Account not found",
|
|
additionalPropl: {}
|
|
})
|
|
} else {
|
|
res.status(204).send()
|
|
}
|
|
});
|
|
|
|
router.delete("/:account", (req, res) => {
|
|
const acc = db.prepare("DELETE FROM accounts WHERE name = ? RETURNING *").run(req.params.account)
|
|
|
|
res.status(200).send()
|
|
});
|
|
|
|
|
|
module.exports = router;
|