Skip to content

Commit f71a6d2

Browse files
authored
Merge pull request dubinc#2428 from dubinc/server-actions-default-program
Refactor partner actions to utilize `getDefaultProgramIdOrThrow`
2 parents d03fd3d + 605d451 commit f71a6d2

44 files changed

Lines changed: 125 additions & 180 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

apps/web/app/app.dub.co/(dashboard)/[slug]/(ee)/programs/[programId]/commissions/create-commission-sheet.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@ function CreateCommissionSheetContent({
8787
await executeAsync({
8888
...data,
8989
workspaceId,
90-
programId: program.id,
9190
saleAmount: data.saleAmount ? data.saleAmount * 100 : null,
9291
saleEventDate,
9392
leadEventDate,

apps/web/app/app.dub.co/(dashboard)/[slug]/(ee)/programs/[programId]/partners/invite-partner-sheet.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,6 @@ function InvitePartnerSheetContent({ setIsOpen }: InvitePartnerSheetProps) {
113113
await executeAsync({
114114
...data,
115115
workspaceId,
116-
programId: program.id,
117116
});
118117
};
119118

apps/web/app/app.dub.co/(dashboard)/[slug]/(ee)/programs/[programId]/partners/partner-table.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,6 @@ function RowMenuButton({
410410

411411
await resendInvite({
412412
workspaceId,
413-
programId: row.original.programId!,
414413
partnerId: row.original.id,
415414
});
416415
}}
@@ -434,7 +433,6 @@ function RowMenuButton({
434433

435434
await deleteInvite({
436435
workspaceId,
437-
programId: row.original.programId!,
438436
partnerId: row.original.id,
439437
});
440438
}}

apps/web/app/app.dub.co/(dashboard)/[slug]/(ee)/programs/[programId]/settings/branding/branding-settings.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,7 @@ function BrandingSettingsForm({ program }: { program: ProgramProps }) {
6060
className="rounded-lg border border-neutral-200 bg-white"
6161
onSubmit={handleSubmit(async (data) => {
6262
await executeAsync({
63-
workspaceId: workspaceId || "",
64-
programId: program.id,
63+
workspaceId: workspaceId!,
6564
...data,
6665
});
6766

apps/web/app/app.dub.co/(dashboard)/[slug]/(ee)/programs/[programId]/settings/communication/page-client.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,13 @@ export function ProgramCommunication() {
4444
});
4545

4646
const onSubmit = async (data: FormData) => {
47-
if (!workspaceId || !program?.id) {
47+
if (!workspaceId) {
4848
return;
4949
}
5050

5151
await executeAsync({
5252
...data,
5353
workspaceId,
54-
programId: program.id,
5554
helpUrl: data.helpUrl || null,
5655
termsUrl: data.termsUrl || null,
5756
});

apps/web/app/app.dub.co/(dashboard)/[slug]/(ee)/programs/[programId]/settings/links/links-settings.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@ function LinksSettingsForm({ program }: { program: ProgramProps }) {
7878
await executeAsync({
7979
...data,
8080
workspaceId: workspaceId!,
81-
programId: program.id,
8281
});
8382

8483
// Reset isDirty state

apps/web/app/app.dub.co/(dashboard)/[slug]/(ee)/programs/[programId]/settings/rewards/settings.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,12 @@ export function RewardSettings() {
4646
});
4747

4848
const onSubmit = async (data: FormData) => {
49-
if (!workspaceId || !program?.id) {
49+
if (!workspaceId) {
5050
return;
5151
}
5252

5353
await executeAsync({
5454
workspaceId,
55-
programId: program.id,
5655
...data,
5756
});
5857
};

apps/web/lib/actions/partners/approve-partner.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"use server";
22

33
import { createPartnerLink } from "@/lib/api/partners/create-partner-link";
4+
import { getDefaultProgramIdOrThrow } from "@/lib/api/programs/get-default-program-id-or-throw";
45
import { determinePartnerReward } from "@/lib/partners/determine-partner-reward";
56
import { ProgramPartnerLinkProps } from "@/lib/types";
67
import { sendWorkspaceWebhook } from "@/lib/webhook/publish";
@@ -23,7 +24,9 @@ export const approvePartnerAction = authActionClient
2324
.schema(approvePartnerSchema)
2425
.action(async ({ parsedInput, ctx }) => {
2526
const { workspace, user } = ctx;
26-
const { programId, partnerId, linkId } = parsedInput;
27+
const { partnerId, linkId } = parsedInput;
28+
29+
const programId = getDefaultProgramIdOrThrow(workspace);
2730

2831
const [program, link] = await Promise.all([
2932
getProgramOrThrow({

apps/web/lib/actions/partners/ban-partner.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"use server";
22

33
import { linkCache } from "@/lib/api/links/cache";
4+
import { getDefaultProgramIdOrThrow } from "@/lib/api/programs/get-default-program-id-or-throw";
45
import { getProgramEnrollmentOrThrow } from "@/lib/api/programs/get-program-enrollment-or-throw";
56
import {
67
BAN_PARTNER_REASONS,
@@ -17,19 +18,15 @@ export const banPartnerAction = authActionClient
1718
.schema(banPartnerSchema)
1819
.action(async ({ parsedInput, ctx }) => {
1920
const { workspace } = ctx;
20-
const { programId, partnerId } = parsedInput;
21+
const { partnerId } = parsedInput;
22+
23+
const programId = getDefaultProgramIdOrThrow(workspace);
2124

2225
const programEnrollment = await getProgramEnrollmentOrThrow({
2326
partnerId,
2427
programId,
2528
});
2629

27-
const { program } = programEnrollment;
28-
29-
if (program.workspaceId !== workspace.id) {
30-
throw new Error("You are not authorized to ban this partner.");
31-
}
32-
3330
if (programEnrollment.status === "banned") {
3431
throw new Error("This partner is already banned.");
3532
}
@@ -91,6 +88,8 @@ export const banPartnerAction = authActionClient
9188
return;
9289
}
9390

91+
const { program } = programEnrollment;
92+
9493
const supportEmail = program.supportEmail || "support@dub.co";
9594

9695
await sendEmail({

apps/web/lib/actions/partners/confirm-payouts.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"use server";
22

33
import { createId } from "@/lib/api/create-id";
4+
import { getDefaultProgramIdOrThrow } from "@/lib/api/programs/get-default-program-id-or-throw";
45
import { getProgramOrThrow } from "@/lib/api/programs/get-program-or-throw";
56
import { PAYOUT_FEES } from "@/lib/partners/constants";
67
import { stripe } from "@/lib/stripe";
@@ -13,7 +14,6 @@ import { authActionClient } from "../safe-action";
1314

1415
const confirmPayoutsSchema = z.object({
1516
workspaceId: z.string(),
16-
programId: z.string(),
1717
paymentMethodId: z.string(),
1818
});
1919

@@ -24,7 +24,9 @@ export const confirmPayoutsAction = authActionClient
2424
.schema(confirmPayoutsSchema)
2525
.action(async ({ parsedInput, ctx }) => {
2626
const { workspace, user } = ctx;
27-
const { programId, paymentMethodId } = parsedInput;
27+
const { paymentMethodId } = parsedInput;
28+
29+
const programId = getDefaultProgramIdOrThrow(workspace);
2830

2931
const { minPayoutAmount } = await getProgramOrThrow({
3032
workspaceId: workspace.id,

0 commit comments

Comments
 (0)