diff options
| -rw-r--r-- | src/handlers/index.js | 6 | ||||
| -rw-r--r-- | src/services/events/event.model.js | 10 | ||||
| -rw-r--r-- | src/services/events/event.service.js | 14 | 
3 files changed, 16 insertions, 14 deletions
| diff --git a/src/handlers/index.js b/src/handlers/index.js index 2234b05..4e7ee83 100644 --- a/src/handlers/index.js +++ b/src/handlers/index.js @@ -13,7 +13,7 @@ const headless = NODE_ENV === 'production' || !HEADFUL;  const handleEventAsUser = async (event, browser, user) => { -  console.log(`Running event as ${user.username}`); +  event.log(`Running event as ${user.username}`);    const browserContext = await browser.createIncognitoBrowserContext(); @@ -32,7 +32,7 @@ const handleEventAsUser = async (event, browser, user) => {    const conferencePage = await conferencePagePromise;    await page.close(); -  await attendConference(conferencePage, () => console.log(`Joined the conference at ${conferenceUrl}`)); +  await attendConference(conferencePage, () => event.log(`Joined the conference at ${conferenceUrl}`));    await browserContext.close();  }; @@ -44,7 +44,7 @@ const handleEvent = async event => {      }    }); -  console.log('Participants: ', participants.map(participant => participant.username)); +  event.log('Participants: ', participants.map(participant => participant.username));    const browser = await puppeteer.launch({ headless, args: ['--no-sandbox', '--incognito'] }); diff --git a/src/services/events/event.model.js b/src/services/events/event.model.js index 9ecacb7..56ba3c9 100644 --- a/src/services/events/event.model.js +++ b/src/services/events/event.model.js @@ -36,16 +36,6 @@ schema.methods.fail = function(error) {    return this.save();  }; -schema.methods.run = async function(handler) { -  try { -    this.start(); -    await handler(this); -    return this.complete(); -  } catch (error) { -    this.fail(error); -  } -}; -  schema.methods.computeNextRunAt = function() {    const job = new CronJob(this.schedule);    const nextRunAt = job.nextDates(); diff --git a/src/services/events/event.service.js b/src/services/events/event.service.js index 227480d..f2185a6 100644 --- a/src/services/events/event.service.js +++ b/src/services/events/event.service.js @@ -45,11 +45,23 @@ class Events extends Service {      if (!events.length) console.log('WARNING: no upcoming events');      this.jobs = events.map(event => new CronJob(        event.schedule, -      () => event.run(handleTestJob) +      () => this.run(event._id)      ));      this.startAllJobs();    } + +  async run(id) { +    const event = await this.Model.findById(id); + +    try { +      event.start(); +      await handleAttendClassJob(event); +      return event.complete(); +    } catch (error) { +      event.fail(error); +    } +  }  } | 
