"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")); dotenv_1.default.config(); class App { constructor() { this.gameSource = new GameSource_1.default(); this.googleCalendar = new GoogleCalendar_1.default(); } async startCronJob() { console.log("START CRON JOB"); const newGamesAdded = []; await this.googleCalendar.init(); // Schedule the job to run daily at a specific time (e.g., 1:00 AM) try { const games = await app.gameSource.getGamesFromHaifa(); for (const game of games) { const isDuplicateEvent = await this.googleCalendar.isDuplicateEvent(game.start.dateTime, game.end.dateTime, game.summary); if (!isDuplicateEvent) { newGamesAdded.push(game); console.log("Event does not exist"); await this.googleCalendar.updateNewEvent([game]); } else { console.log("Event already exists"); console.log("Event:"); console.log("Happening at:"); } } if (newGamesAdded.length > 0) { console.log("New games added:", newGamesAdded); } else { console.log("No new games added"); } } catch (error) { console.error("Error in cron job:", error.message); } } } const app = new App(); app.startCronJob().catch((error) => { console.error("Error in app:", error.message); }); // app.startWebServer();