Solved some bugs related to the payment page

This commit is contained in:
Tiago Ribeiro
2024-01-15 14:52:17 +00:00
parent b7b2dca2dd
commit e47607597c
4 changed files with 30 additions and 18 deletions

View File

@@ -32,7 +32,7 @@ export default function PaymentDue({user, hasExpired = false, clientID, reload}:
if (userGroups.length === 0) return true;
const userGroupsAdminTypes = userGroups.map((g) => users?.find((u) => u.id === g.admin)?.type).filter((t) => !!t);
return userGroupsAdminTypes.every((t) => t !== "admin");
return userGroupsAdminTypes.every((t) => t !== "corporate");
};
return (

View File

@@ -1,7 +1,7 @@
// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
import type {NextApiRequest, NextApiResponse} from "next";
import {app} from "@/firebase";
import {getFirestore, collection, getDocs, setDoc, doc} from "firebase/firestore";
import {getFirestore, collection, getDocs, setDoc, doc, query, where} from "firebase/firestore";
import {withIronSessionApiRoute} from "iron-session/next";
import {sessionOptions} from "@/lib/session";
import {Group} from "@/interfaces/user";
@@ -22,25 +22,19 @@ async function handler(req: NextApiRequest, res: NextApiResponse) {
}
async function get(req: NextApiRequest, res: NextApiResponse) {
const {admin} = req.query as {admin: string};
const snapshot = await getDocs(collection(db, "groups"));
const {admin, participant} = req.query as {admin: string; participant: string};
const groups: Group[] = snapshot.docs.map((doc) => ({
const queryConstraints = [
...(admin ? [where("admin", "==", admin)] : []),
...(participant ? [where("participants", "array-contains", participant)] : []),
];
const snapshot = await getDocs(queryConstraints.length > 0 ? query(collection(db, "groups"), ...queryConstraints) : collection(db, "groups"));
const groups = snapshot.docs.map((doc) => ({
id: doc.id,
...doc.data(),
})) as Group[];
if (admin) {
res.status(200).json(groups.filter((x) => x.admin === admin));
return;
}
res.status(200).json(
snapshot.docs.map((doc) => ({
id: doc.id,
...doc.data(),
})),
);
res.status(200).json(groups);
}
async function post(req: NextApiRequest, res: NextApiResponse) {