DataGrid list type; Review/Send refinment; User lock; Table actions
This commit is contained in:
@@ -48,6 +48,9 @@ export type CampaignVersionListItem = {
|
||||
published_at?: string | null;
|
||||
locked_at?: string | null;
|
||||
locked_by_user_id?: string | null;
|
||||
user_lock_state?: "temporary" | "permanent" | null;
|
||||
user_locked_at?: string | null;
|
||||
user_locked_by_user_id?: string | null;
|
||||
created_at?: string;
|
||||
updated_at?: string;
|
||||
validation_summary?: Record<string, unknown> | null;
|
||||
@@ -186,6 +189,11 @@ export type CampaignMockSendPayload = {
|
||||
check_files?: boolean;
|
||||
};
|
||||
|
||||
export type CampaignReviewStatePayload = {
|
||||
inspection_complete: boolean;
|
||||
reviewed_message_keys: string[];
|
||||
};
|
||||
|
||||
|
||||
export async function listCampaigns(settings: ApiSettings): Promise<CampaignListItem[]> {
|
||||
const response = await apiFetch<CampaignListResponse>(settings, "/api/v1/campaigns");
|
||||
@@ -261,6 +269,36 @@ export async function unlockCampaignVersionValidation(
|
||||
});
|
||||
}
|
||||
|
||||
export async function lockCampaignVersionTemporarily(
|
||||
settings: ApiSettings,
|
||||
campaignId: string,
|
||||
versionId: string
|
||||
): Promise<CampaignVersionDetail> {
|
||||
return apiFetch<CampaignVersionDetail>(settings, `/api/v1/campaigns/${campaignId}/versions/${versionId}/lock-temporarily`, {
|
||||
method: "POST"
|
||||
});
|
||||
}
|
||||
|
||||
export async function unlockCampaignVersionUserLock(
|
||||
settings: ApiSettings,
|
||||
campaignId: string,
|
||||
versionId: string
|
||||
): Promise<CampaignVersionDetail> {
|
||||
return apiFetch<CampaignVersionDetail>(settings, `/api/v1/campaigns/${campaignId}/versions/${versionId}/unlock-user-lock`, {
|
||||
method: "POST"
|
||||
});
|
||||
}
|
||||
|
||||
export async function lockCampaignVersionPermanently(
|
||||
settings: ApiSettings,
|
||||
campaignId: string,
|
||||
versionId: string
|
||||
): Promise<CampaignVersionDetail> {
|
||||
return apiFetch<CampaignVersionDetail>(settings, `/api/v1/campaigns/${campaignId}/versions/${versionId}/lock-permanently`, {
|
||||
method: "POST"
|
||||
});
|
||||
}
|
||||
|
||||
export async function updateCampaignVersion(
|
||||
settings: ApiSettings,
|
||||
campaignId: string,
|
||||
@@ -372,8 +410,25 @@ export async function getCampaignSummary(settings: ApiSettings, campaignId: stri
|
||||
return apiFetch<CampaignSummary>(settings, `/api/v1/campaigns/${campaignId}/summary`);
|
||||
}
|
||||
|
||||
export async function getCampaignJobs(settings: ApiSettings, campaignId: string): Promise<{ jobs: Record<string, unknown>[] }> {
|
||||
return apiFetch<{ jobs: Record<string, unknown>[] }>(settings, `/api/v1/campaigns/${campaignId}/jobs`);
|
||||
export async function getCampaignJobs(
|
||||
settings: ApiSettings,
|
||||
campaignId: string,
|
||||
versionId?: string
|
||||
): Promise<{ jobs: Record<string, unknown>[] }> {
|
||||
const suffix = versionId ? `?version_id=${encodeURIComponent(versionId)}` : "";
|
||||
return apiFetch<{ jobs: Record<string, unknown>[] }>(settings, `/api/v1/campaigns/${campaignId}/jobs${suffix}`);
|
||||
}
|
||||
|
||||
export async function updateCampaignReviewState(
|
||||
settings: ApiSettings,
|
||||
campaignId: string,
|
||||
versionId: string,
|
||||
payload: CampaignReviewStatePayload
|
||||
): Promise<CampaignVersionDetail> {
|
||||
return apiFetch<CampaignVersionDetail>(settings, `/api/v1/campaigns/${campaignId}/versions/${versionId}/review-state`, {
|
||||
method: "POST",
|
||||
body: JSON.stringify(payload)
|
||||
});
|
||||
}
|
||||
|
||||
export async function queueCampaign(
|
||||
|
||||
Reference in New Issue
Block a user