From ef5b6b90e893ee0551b1e26d5afdc60da205f7cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aaron=20D=C3=B6tsch?= <aaron@fsmpi.rwth-aachen.de> Date: Sat, 5 Aug 2023 19:16:57 +0200 Subject: [PATCH] Implement refund notifications --- src/routes/admin/api/[slug]/+server.js | 11 +++++++++++ src/routes/admin/api/transactions.js | 6 +++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/routes/admin/api/[slug]/+server.js b/src/routes/admin/api/[slug]/+server.js index 31c3242..84280f4 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 4d8be78..3d90f78 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} }) ]); } -- GitLab