Bansari Akhani
add vendor and glaccount sync in cron schedule
6147b1b
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');
};