fix(actions): send and use subscription_id for domain suspend/unsuspend

This commit is contained in:
2026-03-05 14:20:07 +00:00
parent 2c52d89dc9
commit 825bf8dc84
2 changed files with 24 additions and 12 deletions

View File

@@ -12,6 +12,7 @@ import { createSupabaseRouteClient } from "@/lib/supabase/route";
const actionSchema = z.object({
action: z.enum(["suspend", "unsuspend"]),
subscription_id: z.string().uuid().optional(),
});
export async function POST(
@@ -32,7 +33,8 @@ export async function POST(
assertAgencyAdmin(context);
assertRateLimit(`plesk-domain-action:${context.userId}`, 10, 60_000);
const { action } = actionSchema.parse(await req.json());
const payload = actionSchema.parse(await req.json());
const { action } = payload;
requestedAction = action;
const { data: domainRow, error: domainError } = await supabase
@@ -46,21 +48,23 @@ export async function POST(
throw new Error("Domain not found");
}
const resolvedSubscriptionId =
payload.subscription_id ??
(domainRow.subscription_id ? String(domainRow.subscription_id) : null);
domain = {
id: String(domainRow.id),
subscription_id: domainRow.subscription_id
? String(domainRow.subscription_id)
: null,
subscription_id: resolvedSubscriptionId,
};
if (!domain.subscription_id) {
if (!resolvedSubscriptionId) {
throw new Error("Domain is not linked to a subscription");
}
const { data: subscriptionRow, error: subscriptionError } = await supabase
.from("plesk_subscriptions")
.select("id, plesk_subscription_id, plesk_instance_id")
.eq("id", domain.subscription_id)
.eq("id", resolvedSubscriptionId)
.eq("agency_id", context.agencyId)
.single();