added more API functions
This commit is contained in:
@@ -3,16 +3,19 @@ import dotenv from "dotenv";
|
|||||||
import {
|
import {
|
||||||
getItemsFromDatabaseV2,
|
getItemsFromDatabaseV2,
|
||||||
changeInSafeStateV2,
|
changeInSafeStateV2,
|
||||||
|
setReturnDateV2,
|
||||||
|
setTakeDateV2,
|
||||||
} from "../services/database.js";
|
} from "../services/database.js";
|
||||||
|
|
||||||
dotenv.config();
|
dotenv.config();
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
|
|
||||||
|
// Route for API to get ALL items from the database
|
||||||
router.get("/items/:key", async (req, res) => {
|
router.get("/items/:key", async (req, res) => {
|
||||||
if (req.params.key === process.env.ADMIN_ID) {
|
if (req.params.key === process.env.ADMIN_ID) {
|
||||||
const result = await getItemsFromDatabaseV2();
|
const result = await getItemsFromDatabaseV2();
|
||||||
if (result.success) {
|
if (result.success) {
|
||||||
res.status(200).json(result.data);
|
res.status(200).json({ data: result.data });
|
||||||
} else {
|
} else {
|
||||||
res.status(500).json({ message: "Failed to fetch items" });
|
res.status(500).json({ message: "Failed to fetch items" });
|
||||||
}
|
}
|
||||||
@@ -21,6 +24,7 @@ router.get("/items/:key", async (req, res) => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Route for API to control the position of an item
|
||||||
router.post("/controlInSafe/:key/:itemId/:state", async (req, res) => {
|
router.post("/controlInSafe/:key/:itemId/:state", async (req, res) => {
|
||||||
if (req.params.key === process.env.ADMIN_ID) {
|
if (req.params.key === process.env.ADMIN_ID) {
|
||||||
const itemId = req.params.itemId;
|
const itemId = req.params.itemId;
|
||||||
@@ -28,7 +32,7 @@ router.post("/controlInSafe/:key/:itemId/:state", async (req, res) => {
|
|||||||
if (state === "1" || state === "0") {
|
if (state === "1" || state === "0") {
|
||||||
const result = await changeInSafeStateV2(itemId, state);
|
const result = await changeInSafeStateV2(itemId, state);
|
||||||
if (result.success) {
|
if (result.success) {
|
||||||
res.status(200).json({ message: "Item state updated successfully" });
|
res.status(200).json({ data: result.data });
|
||||||
} else {
|
} else {
|
||||||
res.status(500).json({ message: "Failed to update item state" });
|
res.status(500).json({ message: "Failed to update item state" });
|
||||||
}
|
}
|
||||||
@@ -40,4 +44,36 @@ router.post("/controlInSafe/:key/:itemId/:state", async (req, res) => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Route for API to set the return date
|
||||||
|
router.post("/setReturnDate/:key/:loan_code", async (req, res) => {
|
||||||
|
if (req.params.key === process.env.ADMIN_ID) {
|
||||||
|
const loanCode = req.params.loan_code;
|
||||||
|
|
||||||
|
const result = await setReturnDateV2(loanCode);
|
||||||
|
if (result.success) {
|
||||||
|
res.status(200).json({ data: result.data });
|
||||||
|
} else {
|
||||||
|
res.status(500).json({ message: "Failed to set return date" });
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
res.status(403).json({ message: "Access denied" });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Route for API to set the take away date
|
||||||
|
router.post("/setTakeDate/:key/:loan_code", async (req, res) => {
|
||||||
|
if (req.params.key === process.env.ADMIN_ID) {
|
||||||
|
const loanCode = req.params.loan_code;
|
||||||
|
|
||||||
|
const result = await setTakeDateV2(loanCode);
|
||||||
|
if (result.success) {
|
||||||
|
res.status(200).json({ data: result.data });
|
||||||
|
} else {
|
||||||
|
res.status(500).json({ message: "Failed to set take date" });
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
res.status(403).json({ message: "Access denied" });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
export default router;
|
export default router;
|
||||||
|
@@ -39,6 +39,28 @@ export const changeInSafeStateV2 = async (itemId, state) => {
|
|||||||
return { success: false };
|
return { success: false };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const setReturnDateV2 = async (loanCode) => {
|
||||||
|
const [result] = await pool.query(
|
||||||
|
"UPDATE loans SET returned_date = NOW() WHERE loan_code = ?",
|
||||||
|
[loanCode]
|
||||||
|
);
|
||||||
|
if (result.affectedRows > 0) {
|
||||||
|
return { success: true };
|
||||||
|
}
|
||||||
|
return { success: false };
|
||||||
|
};
|
||||||
|
|
||||||
|
export const setTakeDateV2 = async (loanCode) => {
|
||||||
|
const [result] = await pool.query(
|
||||||
|
"UPDATE loans SET take_date = NOW() WHERE loan_code = ?",
|
||||||
|
[loanCode]
|
||||||
|
);
|
||||||
|
if (result.affectedRows > 0) {
|
||||||
|
return { success: true };
|
||||||
|
}
|
||||||
|
return { success: false };
|
||||||
|
};
|
||||||
|
|
||||||
export const getItemsFromDatabase = async (role) => {
|
export const getItemsFromDatabase = async (role) => {
|
||||||
const sql =
|
const sql =
|
||||||
role == 0
|
role == 0
|
||||||
|
Reference in New Issue
Block a user