57 lines
1.6 KiB
JavaScript
57 lines
1.6 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
const baseUrl = process.env.CAMPAIGN_RETRY_JOB_URL?.trim()
|
|
|| process.env.APP_URL?.trim()
|
|
|| process.env.NEXT_PUBLIC_APP_URL?.trim();
|
|
|
|
if (!baseUrl) {
|
|
console.error("Missing CAMPAIGN_RETRY_JOB_URL / APP_URL / NEXT_PUBLIC_APP_URL");
|
|
process.exit(1);
|
|
}
|
|
|
|
const endpoint = baseUrl.endsWith("/api/jobs/campaign-retry")
|
|
? baseUrl
|
|
: `${baseUrl.replace(/\/+$/, "")}/api/jobs/campaign-retry`;
|
|
|
|
const token = process.env.CAMPAIGN_RETRY_JOB_TOKEN?.trim();
|
|
const tenantId = process.env.CAMPAIGN_RETRY_TENANT_ID?.trim();
|
|
const campaignId = process.env.CAMPAIGN_RETRY_CAMPAIGN_ID?.trim();
|
|
const recipientBatchSize = Number(process.env.CAMPAIGN_RETRY_BATCH_SIZE);
|
|
const maxCampaigns = Number(process.env.CAMPAIGN_RETRY_MAX_CAMPAIGNS);
|
|
|
|
const payload = {
|
|
...(tenantId ? { tenantId } : {}),
|
|
...(campaignId ? { campaignId } : {}),
|
|
...(Number.isInteger(recipientBatchSize) && recipientBatchSize > 0 ? { recipientBatchSize } : {}),
|
|
...(Number.isInteger(maxCampaigns) && maxCampaigns > 0 ? { maxCampaigns } : {})
|
|
};
|
|
|
|
const headers = {
|
|
"content-type": "application/json"
|
|
};
|
|
|
|
if (token) {
|
|
headers.Authorization = `Bearer ${token}`;
|
|
}
|
|
|
|
try {
|
|
const response = await fetch(endpoint, {
|
|
method: "POST",
|
|
headers,
|
|
body: JSON.stringify(payload)
|
|
});
|
|
|
|
const bodyText = await response.text();
|
|
|
|
if (!response.ok) {
|
|
console.error(`Campaign retry job failed: ${response.status} ${response.statusText}`);
|
|
console.error(bodyText);
|
|
process.exit(1);
|
|
}
|
|
|
|
console.log(bodyText);
|
|
} catch (error) {
|
|
console.error(`Failed to trigger campaign retry job: ${error instanceof Error ? error.message : String(error)}`);
|
|
process.exit(1);
|
|
}
|