improved error logging for the api route to return or take loans
This commit is contained in:
@@ -48,7 +48,8 @@ export const setReturnDateV2 = async (loanCode) => {
|
|||||||
[loanCode],
|
[loanCode],
|
||||||
);
|
);
|
||||||
|
|
||||||
if (items.length === 0) return { success: false };
|
if (items.length === 0)
|
||||||
|
return { success: false, message: "No items found for loan" };
|
||||||
|
|
||||||
const itemIds = Array.isArray(items[0].loaned_items_id)
|
const itemIds = Array.isArray(items[0].loaned_items_id)
|
||||||
? items[0].loaned_items_id
|
? items[0].loaned_items_id
|
||||||
@@ -71,11 +72,20 @@ export const setReturnDateV2 = async (loanCode) => {
|
|||||||
return { success: true, data: { returned: true } };
|
return { success: true, data: { returned: true } };
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("setReturnDateV2 error:", error);
|
console.error("setReturnDateV2 error:", error);
|
||||||
return { success: false };
|
return { success: false, message: "Failed to set return date" };
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
export const setTakeDateV2 = async (loanCode) => {
|
export const setTakeDateV2 = async (loanCode) => {
|
||||||
|
const [isTaken] = await pool.query(
|
||||||
|
"SELECT take_date FROM loans WHERE loan_code = ?",
|
||||||
|
[loanCode],
|
||||||
|
);
|
||||||
|
|
||||||
|
if (isTaken.length === 0 || isTaken[0].take_date !== null) {
|
||||||
|
return { success: false, message: "Loan not found or already taken" };
|
||||||
|
}
|
||||||
|
|
||||||
const [items] = await pool.query(
|
const [items] = await pool.query(
|
||||||
"SELECT loaned_items_id FROM loans WHERE loan_code = ?",
|
"SELECT loaned_items_id FROM loans WHERE loan_code = ?",
|
||||||
[loanCode],
|
[loanCode],
|
||||||
@@ -86,7 +96,8 @@ export const setTakeDateV2 = async (loanCode) => {
|
|||||||
[loanCode],
|
[loanCode],
|
||||||
);
|
);
|
||||||
|
|
||||||
if (items.length === 0) return { success: false };
|
if (items.length === 0)
|
||||||
|
return { success: false, message: "No items found for loan" };
|
||||||
|
|
||||||
const itemIds = Array.isArray(items[0].loaned_items_id)
|
const itemIds = Array.isArray(items[0].loaned_items_id)
|
||||||
? items[0].loaned_items_id
|
? items[0].loaned_items_id
|
||||||
@@ -98,14 +109,14 @@ export const setTakeDateV2 = async (loanCode) => {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const [result] = await pool.query(
|
const [result] = await pool.query(
|
||||||
"UPDATE loans SET take_date = NOW() WHERE loan_code = ?",
|
"UPDATE loans SET take_date = NOW() WHERE loan_code = ? AND take_date IS NULL",
|
||||||
[loanCode],
|
[loanCode],
|
||||||
);
|
);
|
||||||
|
|
||||||
if (result.affectedRows > 0 && setItemStates.affectedRows > 0) {
|
if (result.affectedRows > 0 && setItemStates.affectedRows > 0) {
|
||||||
return { success: true };
|
return { success: true };
|
||||||
}
|
}
|
||||||
return { success: false };
|
return { message: "Failed to set take date", success: false };
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getAllLoansV2 = async () => {
|
export const getAllLoansV2 = async () => {
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ router.get(
|
|||||||
} else {
|
} else {
|
||||||
res.status(404).json({ message: "Loan not found" });
|
res.status(404).json({ message: "Loan not found" });
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
// Route for API to set the return date by the loan code
|
// Route for API to set the return date by the loan code
|
||||||
@@ -58,11 +58,11 @@ router.post(
|
|||||||
const loanCode = req.params.loan_code;
|
const loanCode = req.params.loan_code;
|
||||||
const result = await setReturnDateV2(loanCode);
|
const result = await setReturnDateV2(loanCode);
|
||||||
if (result.success) {
|
if (result.success) {
|
||||||
res.status(200).json({ data: result.data });
|
res.status(200).json({});
|
||||||
} else {
|
} else {
|
||||||
res.status(500).json({ message: "Failed to set return date" });
|
res.status(500).json({ message: "Failed to set return date" });
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
// Route for API to set the take away date by the loan code
|
// Route for API to set the take away date by the loan code
|
||||||
@@ -73,11 +73,11 @@ router.post(
|
|||||||
const loanCode = req.params.loan_code;
|
const loanCode = req.params.loan_code;
|
||||||
const result = await setTakeDateV2(loanCode);
|
const result = await setTakeDateV2(loanCode);
|
||||||
if (result.success) {
|
if (result.success) {
|
||||||
res.status(200).json({ data: result.data });
|
res.status(200).json({});
|
||||||
} else {
|
} else {
|
||||||
res.status(500).json({ message: "Failed to set take date" });
|
res.status(500).json({ message: result.message });
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
// Route for API to open a door
|
// Route for API to open a door
|
||||||
|
|||||||
Reference in New Issue
Block a user