Skip to content
Snippets Groups Projects
Commit ef5b6b90 authored by Aaron Dötsch's avatar Aaron Dötsch
Browse files

Implement refund notifications

parent e3cc96fe
No related branches found
No related tags found
No related merge requests found
......@@ -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);
......
......@@ -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}
})
]);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment