refactor: edit tailwindcss classes and change code formatting, therefore added .prettierrc file

fix: frontend bug where the passwords won't be checked when the password is changed
This commit is contained in:
2026-07-08 14:56:43 +02:00
parent 9c50c3f300
commit 6be34c93aa
36 changed files with 1280 additions and 1145 deletions
+124 -112
View File
@@ -1,48 +1,61 @@
import mysql, {type ResultSetHeader, type RowDataPacket} from "mysql2/promise";
import mysql, {
type ResultSetHeader,
type RowDataPacket,
} from "mysql2/promise";
import dotenv from "dotenv";
import {returnErrorCode} from "../../../services/helperFuncs.js";
import {PRODUCT_ERROR_CODE} from "@stockhome/shared";
import { returnErrorCode } from "../../../services/helperFuncs.js";
import { PRODUCT_ERROR_CODE } from "@stockhome/shared";
dotenv.config();
const pool = mysql.createPool({
host: process.env.DB_HOST!,
user: process.env.DB_USER!,
password: process.env.DB_PASSWORD!,
database: process.env.DB_NAME!,
host: process.env.DB_HOST!,
user: process.env.DB_USER!,
password: process.env.DB_PASSWORD!,
database: process.env.DB_NAME!,
});
export const newProduct = async (
name: string,
description: string,
price: string,
amount: string,
storage_location: string,
expiry_date: string,
bottling_date: string,
): Promise<boolean | { success: boolean; code: string; data: null; message: string }> => {
const newPrice = price !== "" ? price : null;
name: string,
description: string,
price: string,
amount: string,
storage_location: string,
expiry_date: string,
bottling_date: string,
): Promise<
boolean | { success: boolean; code: string; data: null; message: string }
> => {
const newPrice = price !== "" ? price : null;
const [result] = await pool.query<ResultSetHeader>(
"INSERT INTO products (name, description, price, amount, storage_location, expiry_date, bottling_date) VALUES (?, ?, ?, ?, UUID_TO_BIN(?), ?, ?)",
[name, description, newPrice, amount, storage_location, expiry_date, bottling_date],
);
const [result] = await pool.query<ResultSetHeader>(
"INSERT INTO products (name, description, price, amount, storage_location, expiry_date, bottling_date) VALUES (?, ?, ?, ?, UUID_TO_BIN(?), ?, ?)",
[
name,
description,
newPrice,
amount,
storage_location,
expiry_date,
bottling_date,
],
);
if (result.affectedRows > 0) {
return {
success: true,
code: "SP001",
data: null,
message: "New Product successfully created.",
};
}
if (result.affectedRows > 0) {
return {
success: true,
code: "SP001",
data: null,
message: "New Product successfully created.",
};
}
return returnErrorCode(PRODUCT_ERROR_CODE.PRODUCT_NOT_CREATED);
return returnErrorCode(PRODUCT_ERROR_CODE.PRODUCT_NOT_CREATED);
};
export const productDetails = async (uuid: string) => {
const [result] = await pool.query<RowDataPacket[]>(
`SELECT BIN_TO_UUID(p.uuid) AS uuid,
const [result] = await pool.query<RowDataPacket[]>(
`SELECT BIN_TO_UUID(p.uuid) AS uuid,
p.name,
p.description,
p.price,
@@ -55,23 +68,23 @@ export const productDetails = async (uuid: string) => {
FROM products p
JOIN storage_locations s ON p.storage_location = s.uuid
WHERE p.uuid = UUID_TO_BIN(?)`,
[uuid],
);
[uuid],
);
if (result.length > 0) {
return {
success: true,
code: "SP003",
data: result[0],
message: "Product details successfully loaded.",
};
}
if (result.length > 0) {
return {
success: true,
code: "SP003",
data: result[0],
message: "Product details successfully loaded.",
};
}
return returnErrorCode(PRODUCT_ERROR_CODE.PRODUCT_NOT_FOUND);
return returnErrorCode(PRODUCT_ERROR_CODE.PRODUCT_NOT_FOUND);
};
export const allProducts = async () => {
const [result] = await pool.query<RowDataPacket[]>(`
const [result] = await pool.query<RowDataPacket[]>(`
SELECT BIN_TO_UUID(p.uuid) AS uuid,
p.name,
p.description,
@@ -89,52 +102,52 @@ export const allProducts = async () => {
WHERE p.deleted = 0
`);
if (result.length > 0) {
return {
success: true,
code: "SP002",
data: result,
message: "All products successfully loaded.",
};
}
if (result.length > 0) {
return {
success: true,
code: "SP002",
data: result,
message: "All products successfully loaded.",
};
}
return returnErrorCode(PRODUCT_ERROR_CODE.NO_PRODUCTS_FOUND);
return returnErrorCode(PRODUCT_ERROR_CODE.NO_PRODUCTS_FOUND);
};
export const setAmount = async (itemUUID: string, amount: number) => {
const [result] = await pool.query<ResultSetHeader>(
`UPDATE products
const [result] = await pool.query<ResultSetHeader>(
`UPDATE products
SET amount = ?
WHERE uuid = UUID_TO_BIN(?)`,
[amount, itemUUID],
);
[amount, itemUUID],
);
if (result.affectedRows > 0) {
return {
success: true,
code: "SP004",
data: null,
message: "Amount successfully updated.",
};
}
if (result.affectedRows > 0) {
return {
success: true,
code: "SP004",
data: null,
message: "Amount successfully updated.",
};
}
return returnErrorCode(PRODUCT_ERROR_CODE.PRODUCT_AMOUNT_NOT_UPDATED);
return returnErrorCode(PRODUCT_ERROR_CODE.PRODUCT_AMOUNT_NOT_UPDATED);
};
export const updateItem = async (
itemUUID: string,
newValues: {
name: string;
description: string;
price: string;
amount: string;
storage_location_uuid: string;
expiry_date: string;
bottling_date: string;
},
itemUUID: string,
newValues: {
name: string;
description: string;
price: string;
amount: string;
storage_location_uuid: string;
expiry_date: string;
bottling_date: string;
},
) => {
const [result] = await pool.query<ResultSetHeader>(
`UPDATE products
const [result] = await pool.query<ResultSetHeader>(
`UPDATE products
SET name = ?,
description = ?,
price = ?,
@@ -143,47 +156,46 @@ export const updateItem = async (
expiry_date = ?,
bottling_date = ?
WHERE uuid = UUID_TO_BIN(?);`,
[
newValues.name,
newValues.description,
newValues.price,
newValues.amount,
newValues.storage_location_uuid,
newValues.expiry_date,
newValues.bottling_date,
itemUUID,
],
);
[
newValues.name,
newValues.description,
newValues.price,
newValues.amount,
newValues.storage_location_uuid,
newValues.expiry_date,
newValues.bottling_date,
itemUUID,
],
);
if (result.affectedRows > 0) {
return {
success: true,
code: "SP005",
data: null,
message: "Item updated successfully.",
};
}
if (result.affectedRows > 0) {
return {
success: true,
code: "SP005",
data: null,
message: "Item updated successfully.",
};
}
return returnErrorCode(PRODUCT_ERROR_CODE.PRODUCT_NOT_UPDATED);
return returnErrorCode(PRODUCT_ERROR_CODE.PRODUCT_NOT_UPDATED);
};
export const deleteProduct = async (uuid: string) => {
const [result] = await pool.query<ResultSetHeader>(
`UPDATE products
const [result] = await pool.query<ResultSetHeader>(
`UPDATE products
SET deleted = 1
WHERE uuid = UUID_TO_BIN(?);`,
[uuid],
);
[uuid],
);
if (result.affectedRows > 0) {
return {
success: true,
code: "SP006",
data: null,
message: "Product deleted successfully.",
};
;
}
if (result.affectedRows > 0) {
return {
success: true,
code: "SP006",
data: null,
message: "Product deleted successfully.",
};
}
return returnErrorCode(PRODUCT_ERROR_CODE.PRODUCT_NOT_DELETED);
};
return returnErrorCode(PRODUCT_ERROR_CODE.PRODUCT_NOT_DELETED);
};