Files
stockhome/backend/routes/app/storage.route.ts
T

122 lines
2.6 KiB
TypeScript

import express from "express";
import dotenv from "dotenv";
import {authenticate} from "../../services/tokenService.js";
import {allStorages, deleteStorage, newStorage, updateStorage,} from "./database/storage.database.ts";
import {STORAGE_ERROR_CODE} from "@stockhome/shared";
dotenv.config();
const router = express.Router();
router.get("/all-storages", authenticate, async (req, res) => {
const result = await allStorages();
if (result.code === "ss001") {
return res.status(200).json({
success: true,
code: "ss001",
data: result.data,
message: "",
});
}
if (result.code === STORAGE_ERROR_CODE.NO_STORAGE_LOCATIONS_FOUND[0]) {
return res.status(404).json({
success: false,
code: result.code,
data: null,
message: result.message,
});
}
return res.status(500).json({
success: false,
code: result.code,
data: null,
message: result.message,
});
});
router.post("/new-storage", authenticate, async (req, res) => {
const { name, description } = req.body;
let desc = description;
if (!name) {
return res.status(400).json({
success: false,
code: STORAGE_ERROR_CODE.INVALID_REQUEST_BODY[0],
data: null,
message: "invalid request body",
});
}
if (description == "") {
desc = null;
}
const result = await newStorage(name, desc);
if (result.code === "ss002") {
return res.status(201).json({
success: true,
code: "ss002",
data: null,
message: "",
});
}
return res.status(500).json({
success: false,
code: result.code,
data: null,
message: result.message,
});
});
router.post("/update-storage", authenticate, async (req, res) => {
const storageUUID = req.query.storageUUID;
const values = req.body;
const result = await updateStorage(storageUUID, values);
if (result.code === "ss003") {
return res.status(201).json({
success: true,
code: "ss003",
data: null,
message: "",
});
}
return res.status(500).json({
success: false,
code: result.code,
data: null,
message: result.message,
});
});
router.delete("/delete", authenticate, async (req, res) => {
const uuid = req.query.uuid;
const result = await deleteStorage(uuid);
if (result.code === "ss004") {
return res.status(201).json({
success: true,
code: "ss004",
data: null,
message: "",
});
}
return res.status(500).json({
success: false,
code: result.code,
data: null,
message: result.message,
});
});
export default router;