warmbox/apps/api/src/jobs/campaign-rollover.job.ts

24 lines
715 B
TypeScript

import { CampaignStatus, prisma } from '../lib/prisma';
import { logger } from '../lib/logger';
import { syncCampaignDay } from '../services/campaign.service';
export async function runCampaignRolloverJob(): Promise<void> {
logger.info('Campaign rollover job started');
const campaigns = await prisma.warmupCampaign.findMany({
where: {
status: { in: [CampaignStatus.active, CampaignStatus.maintenance] },
},
select: { id: true },
});
for (const campaign of campaigns) {
try {
await syncCampaignDay(campaign.id);
} catch (err) {
logger.error({ err, campaignId: campaign.id }, 'Campaign rollover failed');
}
}
logger.info('Campaign rollover job finished');
}