"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const GameSource_1 = __importDefault(require("./GameSource")); const GoogleCalendar_1 = __importDefault(require("./GoogleCalendar")); const dotenv_1 = __importDefault(require("dotenv")); const node_cron_1 = __importDefault(require("node-cron")); const fs_1 = __importDefault(require("fs")); // Importing fs for logging dotenv_1.default.config(); class App { constructor() { this.gameSource = new GameSource_1.default(); this.googleCalendar = new GoogleCalendar_1.default(); } async startCronJob() { this.writeLog('START CRON JOB'); // Log when the cron job starts console.log("START Haifa Reminder"); const newGamesAdded = []; await this.googleCalendar.init(); try { const games = await this.gameSource.getGamesFromHaifa(); for (const game of games) { const isDuplicateEvent = await this.googleCalendar.isDuplicateEvent(game.start.dateTime, game.end.dateTime, game.summary); console.log(game); if (!isDuplicateEvent) { newGamesAdded.push(game); console.log("Event does not exist"); await this.googleCalendar.updateNewEvent([game]); } else { console.log("Event already exists"); } } if (newGamesAdded.length > 0) { console.log("New games added:", newGamesAdded); } else { console.log("No new games were Added!"); } this.writeLog('Successfully ran project'); } catch (error) { this.writeLog("Error in cron job:" + error.message); } finally { this.writeLog('END CRON JOB'); // Log when the cron job ends } } writeLog(message) { const timestamp = new Date().toISOString(); const logMessage = `${timestamp} - ${message}\n`; // Write to log file synchronously fs_1.default.appendFileSync('cron.log', logMessage); console.log(logMessage); // Optional: also log to console } } const app = new App(); node_cron_1.default.schedule('0 10 * * *', () => { console.log('Running startCronJob at 10:00 AM Jerusalem time'); app.startCronJob().catch((error) => { console.error("Error in scheduled cron job:", error.message); app.writeLog(`ERROR: ${error.message}`); // Log any errors }); }, { scheduled: true, timezone: "Asia/Jerusalem" });