From 553eab59e6c038b1c60eacc0971bb69ab0f1fc7c Mon Sep 17 00:00:00 2001 From: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com> Date: Thu, 15 May 2025 10:33:38 +0200 Subject: [PATCH] fix: sms credits follow up (#21304) * address mrge review comments * code clean up * fix type error --------- Co-authored-by: CarinaWolli --- apps/web/pages/api/twilio/webhook.ts | 4 ++-- .../emails/src/templates/CreditBalanceLimitReachedEmail.tsx | 2 +- .../emails/src/templates/CreditBalanceLowWarningEmail.tsx | 2 +- .../ee/billing/api/webhook/_checkout.session.completed.ts | 2 +- packages/features/ee/billing/credit-service.test.ts | 1 - packages/lib/server/repository/credits.ts | 2 +- .../trpc/server/routers/viewer/credits/buyCredits.handler.ts | 4 ++-- .../server/routers/viewer/credits/getAllCredits.handler.ts | 4 ++-- 8 files changed, 10 insertions(+), 11 deletions(-) diff --git a/apps/web/pages/api/twilio/webhook.ts b/apps/web/pages/api/twilio/webhook.ts index 93cf993b77..cc15930abf 100644 --- a/apps/web/pages/api/twilio/webhook.ts +++ b/apps/web/pages/api/twilio/webhook.ts @@ -76,7 +76,7 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { const creditService = new CreditService(); if (countryCode === "US" || countryCode === "CA") { - // SMS to US and CA are free on a team plan + // SMS to US and CA are free let teamIdToCharge = parsedTeamId; if (!teamIdToCharge && parsedUserId) { @@ -100,7 +100,7 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { credits: 0, }); - return res.status(200).send(`SMS to US and CA are free on a team plan. Credits set to 0`); + return res.status(200).send(`SMS to US and CA are free. Credits set to 0`); } let orgId; diff --git a/packages/emails/src/templates/CreditBalanceLimitReachedEmail.tsx b/packages/emails/src/templates/CreditBalanceLimitReachedEmail.tsx index 5c48a99fad..9ff9c0b1af 100644 --- a/packages/emails/src/templates/CreditBalanceLimitReachedEmail.tsx +++ b/packages/emails/src/templates/CreditBalanceLimitReachedEmail.tsx @@ -52,7 +52,7 @@ export const CreditBalanceLimitReachedEmail = (
diff --git a/packages/emails/src/templates/CreditBalanceLowWarningEmail.tsx b/packages/emails/src/templates/CreditBalanceLowWarningEmail.tsx index 0a6a26abe2..d544f8e54c 100644 --- a/packages/emails/src/templates/CreditBalanceLowWarningEmail.tsx +++ b/packages/emails/src/templates/CreditBalanceLowWarningEmail.tsx @@ -61,7 +61,7 @@ export const CreditBalanceLowWarningEmail = (
diff --git a/packages/features/ee/billing/api/webhook/_checkout.session.completed.ts b/packages/features/ee/billing/api/webhook/_checkout.session.completed.ts index fd6fcebdb7..33a1030580 100644 --- a/packages/features/ee/billing/api/webhook/_checkout.session.completed.ts +++ b/packages/features/ee/billing/api/webhook/_checkout.session.completed.ts @@ -14,7 +14,7 @@ const handler = async (data: SWHMap["checkout.session.completed"]["data"]) => { const userId = session.metadata?.userId ? Number(session.metadata.userId) : undefined; if (!teamId && !userId) { - throw new HttpCode(400, "Team id and user id, but at least one is required"); + throw new HttpCode(400, "Team id and user id are missing, but at least one is required"); } const lineItems = await stripe.checkout.sessions.listLineItems(session.id); diff --git a/packages/features/ee/billing/credit-service.test.ts b/packages/features/ee/billing/credit-service.test.ts index 72728184bb..6bd8fb7df2 100644 --- a/packages/features/ee/billing/credit-service.test.ts +++ b/packages/features/ee/billing/credit-service.test.ts @@ -395,7 +395,6 @@ describe("CreditService", () => { vi.spyOn(CreditService.prototype, "getMonthlyCredits").mockResolvedValue(500); const result = await creditService.getAllCreditsForTeam(1); - console.log(`tesult ${JSON.stringify(result)}`); expect(result).toEqual({ totalMonthlyCredits: 500, totalRemainingMonthlyCredits: 420, // 500 - (50 + 30) diff --git a/packages/lib/server/repository/credits.ts b/packages/lib/server/repository/credits.ts index 6329c06c52..ab8e8be8c5 100644 --- a/packages/lib/server/repository/credits.ts +++ b/packages/lib/server/repository/credits.ts @@ -85,7 +85,7 @@ export class CreditsRepository { } } - static async findCreditBalanceWithExpenseLogs({ teamId }: { teamId?: number }) { + static async findCreditBalanceWithExpenseLogs({ teamId }: { teamId: number }) { return await prisma.creditBalance.findUnique({ where: { teamId, diff --git a/packages/trpc/server/routers/viewer/credits/buyCredits.handler.ts b/packages/trpc/server/routers/viewer/credits/buyCredits.handler.ts index 3cb0751a72..f8cdf3547c 100644 --- a/packages/trpc/server/routers/viewer/credits/buyCredits.handler.ts +++ b/packages/trpc/server/routers/viewer/credits/buyCredits.handler.ts @@ -34,9 +34,9 @@ export const buyCreditsHandler = async ({ ctx, input }: BuyCreditsOptions) => { } } else { // if user id is part of a team, user can't buy credits for themselves - const membership = await MembershipRepository.findAllAcceptedMemberships(ctx.user.id); + const memberships = await MembershipRepository.findAllAcceptedMemberships(ctx.user.id); - if (membership.length > 0) { + if (memberships.length > 0) { throw new TRPCError({ code: "UNAUTHORIZED", }); diff --git a/packages/trpc/server/routers/viewer/credits/getAllCredits.handler.ts b/packages/trpc/server/routers/viewer/credits/getAllCredits.handler.ts index a9ff47e764..60d9a64001 100644 --- a/packages/trpc/server/routers/viewer/credits/getAllCredits.handler.ts +++ b/packages/trpc/server/routers/viewer/credits/getAllCredits.handler.ts @@ -25,9 +25,9 @@ export const getAllCreditsHandler = async ({ ctx, input }: GetAllCreditsOptions) } } else { //if user is part of team, don't return any credits if teamId is not given - const membership = await MembershipRepository.findAllAcceptedMemberships(ctx.user.id); + const memberships = await MembershipRepository.findAllAcceptedMemberships(ctx.user.id); - if (membership.length > 0) { + if (memberships.length > 0) { return null; } }