diff --git a/src/routes/admin/api/[slug]/+server.js b/src/routes/admin/api/[slug]/+server.js index 31c3242267070bb3b6b0086fc0cefe6477db6584..84280f4ad57496992c79428e25f7d2e315190702 100644 --- a/src/routes/admin/api/[slug]/+server.js +++ b/src/routes/admin/api/[slug]/+server.js @@ -2,6 +2,8 @@ import { restockArticle, createArticle } from "../articles"; import { createUser } from "../users"; import { deleteItemTransaction } from "../transactions"; import { deleteNotificationChannel } from "../notificationChannels"; +import { sendNotification } from "$lib/server/notifications/handler"; +import { NotificationType } from "$lib/notifications/notificationTypes"; export const POST = async ({request, params}) => { switch(params.slug){ @@ -73,6 +75,15 @@ export const DELETE = async ({request, params}) => { if(!Number.isInteger(data.id) || data.id <= 0) return new Response(JSON.stringify({message: "Invalid data"}), {status: 400}); try{ const transaction = await deleteItemTransaction(data.id); + if(!transaction) return new Response(JSON.stringify({message: "Transaction not found"}), {status: 404}); + // no need to await + sendNotification(transaction[1].id, NotificationType.REFUND, { + item: {code: transaction[0].code, name: transaction[0].name, premium: transaction[2].premium, price: transaction[2].price}, + balanceBefore: transaction[1].balance - transaction[2].price - transaction[2].premium, + balanceAfter: transaction[1].balance, + refund: {price: transaction[2].price, premium: transaction[2].premium, total: transaction[2].price + transaction[2].premium}, + timeBought: transaction[2].createdAt + }); return new Response(JSON.stringify({success: true, transaction}), {status: 200}); }catch(error){ console.error(error); diff --git a/src/routes/admin/api/transactions.js b/src/routes/admin/api/transactions.js index 4d8be78c77d9de1aa3d8f7660aa1603019a4a2f7..3d90f78a4dd744f090ed7f84ef04e2ad3fb565e8 100644 --- a/src/routes/admin/api/transactions.js +++ b/src/routes/admin/api/transactions.js @@ -65,9 +65,6 @@ export async function deleteItemTransaction(id){ }, bought: { decrement: 1 - }, - transactions: { - delete: {id: transaction.id} } } }), @@ -78,6 +75,9 @@ export async function deleteItemTransaction(id){ increment: transaction.price + transaction.premium } } + }), + db.itemTransaction.delete({ + where: {id} }) ]); }