- It is no longer possible to upload/edit/delete a transfer after it is considered paid

- When deleting a row, the transfers are also deleted from the storage
This commit is contained in:
Tiago Ribeiro
2024-01-09 12:12:20 +00:00
parent db2f5f2c0b
commit 7b0f8c1c20
3 changed files with 52 additions and 26 deletions

View File

@@ -1,10 +1,12 @@
// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
import type {NextApiRequest, NextApiResponse} from "next";
import {app} from "@/firebase";
import {app, storage} from "@/firebase";
import {getFirestore, collection, getDocs, getDoc, doc, deleteDoc, setDoc} from "firebase/firestore";
import {withIronSessionApiRoute} from "iron-session/next";
import {sessionOptions} from "@/lib/session";
import {Group} from "@/interfaces/user";
import {Payment} from "@/interfaces/paypal";
import {deleteObject, ref} from "firebase/storage";
const db = getFirestore(app);
@@ -44,11 +46,14 @@ async function del(req: NextApiRequest, res: NextApiResponse) {
const {id} = req.query as {id: string};
const snapshot = await getDoc(doc(db, "payments", id));
const data = snapshot.data() as Payment;
const user = req.session.user;
if (user.type === "admin" || user.type === "developer") {
await deleteDoc(snapshot.ref);
if (data.commissionTransfer) await deleteObject(ref(storage, data.commissionTransfer));
if (data.corporateTransfer) await deleteObject(ref(storage, data.corporateTransfer));
await deleteDoc(snapshot.ref);
res.status(200).json({ok: true});
return;
}