diff --git a/backendV2/routes/admin/database/loanDataMgmt.database.js b/backendV2/routes/admin/database/loanDataMgmt.database.js index 776e41f..81d2c55 100644 --- a/backendV2/routes/admin/database/loanDataMgmt.database.js +++ b/backendV2/routes/admin/database/loanDataMgmt.database.js @@ -12,7 +12,7 @@ const pool = mysql .promise(); export const getAllLoans = async () => { - const [rows] = await pool.query("SELECT * FROM loans"); + const [rows] = await pool.query("SELECT * FROM loans WHERE deleted_admin = 0;"); return { success: true, data: rows }; }; diff --git a/backendV2/routes/api/api.database.js b/backendV2/routes/api/api.database.js index d0a13d3..f42f417 100644 --- a/backendV2/routes/api/api.database.js +++ b/backendV2/routes/api/api.database.js @@ -119,14 +119,6 @@ export const setTakeDateV2 = async (loanCode) => { return { message: "Failed to set take date", success: false }; }; -export const getAllLoansV2 = async () => { - const [result] = await pool.query("SELECT * FROM loans;"); - if (result.length > 0) { - return { success: true, data: result }; - } - return { success: false }; -}; - export const openDoor = async (doorKey) => { const [result] = await pool.query( "SELECT safe_nr, id FROM items WHERE door_key = ?;", diff --git a/backendV2/routes/app/database/loansMgmt.database.js b/backendV2/routes/app/database/loansMgmt.database.js index aa9a261..f02ea65 100644 --- a/backendV2/routes/app/database/loansMgmt.database.js +++ b/backendV2/routes/app/database/loansMgmt.database.js @@ -63,11 +63,9 @@ export const createLoanInDatabase = async ( }; } - const itemNames = itemIds - .map( - (id) => itemsRows.find((r) => Number(r.id) === Number(id))?.item_name, - ) - .filter(Boolean); + const itemNames = itemIds.map( + (id) => itemsRows.find((r) => Number(r.id) === Number(id)).item_name, + ); // Build lockers array (unique, only 2-digit numbers from safe_nr) const lockers = [ @@ -109,27 +107,24 @@ export const createLoanInDatabase = async ( }; } - // Generate unique loan_code (retry a few times) - let loanCode = null; - for (let i = 0; i < 6; i++) { - const candidate = Math.floor(100000 + Math.random() * 899999); // 6 digits - const [exists] = await conn.query( - "SELECT 1 FROM loans WHERE loan_code = ? LIMIT 1", + let index = false; + let candidate; + let loanCode; + + // Generates 6-digit loan code + do { + candidate = Math.floor(100000 + Math.random() * 899999); + + const [rows] = await conn.query( + "SELECT 1 FROM loans where loan_code = ? LIMIT 1", [candidate], ); - if (exists.length === 0) { + + if (rows.length == 0) { + index = true; loanCode = candidate; - break; } - } - if (!loanCode) { - await conn.rollback(); - return { - success: false, - code: "SERVER_ERROR", - message: "Failed to generate unique loan code", - }; - } + } while (index === false); // Insert loan (now includes lockers) const [insertRes] = await conn.query( diff --git a/no-as-a-service b/no-as-a-service index 764062a..e6b4218 160000 --- a/no-as-a-service +++ b/no-as-a-service @@ -1 +1 @@ -Subproject commit 764062a307c725cb55f56308ee842f5e42529dd1 +Subproject commit e6b4218394f3ab6c513caaf2ec2e3e88d03d124c