Spaces:
Runtime error
Runtime error
| import cron from 'node-cron'; | |
| import { logger } from '../../utils/logger'; | |
| import { syncInvoicesService } from './bills.service'; | |
| import { syncUnitsDataFromUrlService } from './units.service'; | |
| import { syncWorkOrderDataFromJsonService } from './workorder.service'; | |
| import { syncVendorsFromJsonService } from './vendors.service'; | |
| import { syncGlAccountsFromJsonService } from './glaccounts.service'; | |
| const CRON_SCHEDULE = process.env.CRON_SCHEDULE || '0 0 * * *'; | |
| const SYNC_INVOICES = process.env.SYNC_INVOICES; | |
| export const setupCronJobs = () => { | |
| cron.schedule(CRON_SCHEDULE, async () => { | |
| logger.info('Running scheduled propertyware sync job'); | |
| try { | |
| /* NOTE: disabled below crons because currently property sync is not done from PW apis | |
| * but it fetches data from url in json format and syncing all the portfolios, buildings and units. | |
| * Reason: PW api were not giving all the portfolios in their api and we were not getting any response from support team. | |
| * So to have things in working we have implemented this approach as client suggested | |
| */ | |
| // await syncPortfolioDataService(); | |
| // logger.info('Scheduled portfolio sync completed successfully'); | |
| // await syncBuildingsDataService(); | |
| // logger.info('Scheduled buildings sync completed successfully'); | |
| // await syncUnitsDataService(); | |
| // logger.info('Scheduled units sync completed successfully'); | |
| // New cron to sync all properties data using json data fetched from url | |
| await syncUnitsDataFromUrlService(); | |
| logger.info('Scheduled properties sync completed successfully'); | |
| await syncWorkOrderDataFromJsonService(); | |
| logger.info('Scheduled work order sync completed successfully'); | |
| await syncVendorsFromJsonService(); | |
| logger.info('Scheduled vendor sync completed successfully'); | |
| await syncGlAccountsFromJsonService(); | |
| logger.info('Scheduled Gl Accounts sync completed successfully'); | |
| if (SYNC_INVOICES === "true") { | |
| await syncInvoicesService(); | |
| logger.info('Scheduled invoices sync completed successfully'); | |
| } | |
| } catch (error) { | |
| logger.error('Error in scheduled portfolio sync:', error); | |
| } | |
| }); | |
| logger.info('Cron job for propertyware sync has been scheduled'); | |
| }; | |