From 5793901b03557478ee3875dd2fb89f7dfbececa9 Mon Sep 17 00:00:00 2001 From: zomars Date: Fri, 18 Nov 2022 16:55:34 -0700 Subject: [PATCH] Adds conditions for upgrading team from API --- packages/features/ee/teams/api/upgrade.ts | 8 +++++--- packages/trpc/server/routers/viewer/teams.tsx | 7 +++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/features/ee/teams/api/upgrade.ts b/packages/features/ee/teams/api/upgrade.ts index 6e3b77c13d..ec20b35199 100644 --- a/packages/features/ee/teams/api/upgrade.ts +++ b/packages/features/ee/teams/api/upgrade.ts @@ -4,7 +4,7 @@ import { z } from "zod"; import { getRequestedSlugError } from "@calcom/app-store/stripepayment/lib/team-billing"; import stripe from "@calcom/features/ee/payments/server/stripe"; -import { ensureSession } from "@calcom/lib/auth"; +import { getSession } from "@calcom/lib/auth"; import { WEBAPP_URL } from "@calcom/lib/constants"; import { HttpError } from "@calcom/lib/http-error"; import { defaultHandler, defaultResponder } from "@calcom/lib/server"; @@ -18,8 +18,6 @@ const querySchema = z.object({ }); async function handler(req: NextApiRequest, res: NextApiResponse) { - await ensureSession({ req }); - const { team: id, session_id } = querySchema.parse(req.query); const checkoutSession = await stripe.checkout.sessions.retrieve(session_id, { @@ -65,6 +63,10 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { closeComUpdateTeam(prevTeam, team); } + const session = await getSession({ req }); + + if (!session) return { message: "Team upgraded successfully" }; + // redirect to team screen res.redirect(302, `${WEBAPP_URL}/settings/teams/${team.id}/profile?upgraded=true`); } diff --git a/packages/trpc/server/routers/viewer/teams.tsx b/packages/trpc/server/routers/viewer/teams.tsx index 1df5f7ccda..249231c854 100644 --- a/packages/trpc/server/routers/viewer/teams.tsx +++ b/packages/trpc/server/routers/viewer/teams.tsx @@ -603,7 +603,7 @@ export const viewerTeamsRouter = router({ code: "INTERNAL_SERVER_ERROR", message: "Failed retrieving a checkout session URL.", }); - return { url: checkoutSession.url }; + return { url: checkoutSession.url, message: "Payment required to publish team" }; } if (!metadata.data?.requestedSlug) { @@ -629,7 +629,10 @@ export const viewerTeamsRouter = router({ // Sync Services: Close.com closeComUpdateTeam(prevTeam, updatedTeam); - return { url: `${WEBAPP_URL}/settings/teams/${updatedTeam.id}/profile` }; + return { + url: `${WEBAPP_URL}/settings/teams/${updatedTeam.id}/profile`, + message: "Team published succesfully", + }; }), /** This is a temporal endpoint so we can progressively upgrade teams to the new billing system. */ getUpgradeable: authedProcedure.query(async ({ ctx }) => {