Enabled payment for Corporate along with increasing every single one of their students/teachers expiry date as well
This commit is contained in:
@@ -11,6 +11,7 @@ import {v4} from "uuid";
|
||||
import {OrderResponseBody} from "@paypal/paypal-js";
|
||||
import {getAccessToken} from "@/utils/paypal";
|
||||
import moment from "moment";
|
||||
import {Group} from "@/interfaces/user";
|
||||
|
||||
const db = getFirestore(app);
|
||||
|
||||
@@ -36,6 +37,7 @@ async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||
);
|
||||
|
||||
if (request.data.status === "COMPLETED") {
|
||||
const user = req.session.user;
|
||||
const subscriptionExpirationDate = req.session.user.subscriptionExpirationDate;
|
||||
const today = moment(new Date());
|
||||
const dateToBeAddedTo = !subscriptionExpirationDate
|
||||
@@ -51,8 +53,30 @@ async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||
{merge: true},
|
||||
);
|
||||
|
||||
res.status(200).json({ok: true});
|
||||
return;
|
||||
if (user.type === "corporate") {
|
||||
const snapshot = await getDocs(collection(db, "groups"));
|
||||
const groups: Group[] = (
|
||||
snapshot.docs.map((doc) => ({
|
||||
id: doc.id,
|
||||
...doc.data(),
|
||||
})) as Group[]
|
||||
).filter((x) => x.admin === user.id);
|
||||
|
||||
await Promise.all(
|
||||
groups
|
||||
.flatMap((x) => x.participants)
|
||||
.map(
|
||||
async (x) =>
|
||||
await setDoc(
|
||||
doc(db, "users", x),
|
||||
{subscriptionExpirationDate: updatedExpirationDate.toISOString(), status: "active"},
|
||||
{merge: true},
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
return res.status(200).json({ok: true});
|
||||
}
|
||||
|
||||
res.status(404).json({ok: false, reason: "Order ID not found or purchase was not approved!"});
|
||||
|
||||
Reference in New Issue
Block a user