Adds conditions for upgrading team from API
This commit is contained in:
@@ -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`);
|
||||
}
|
||||
|
||||
@@ -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 }) => {
|
||||
|
||||
Reference in New Issue
Block a user