summaryrefslogtreecommitdiff
path: root/src/services/events
diff options
context:
space:
mode:
Diffstat (limited to 'src/services/events')
-rw-r--r--src/services/events/event.model.js10
-rw-r--r--src/services/events/event.service.js14
2 files changed, 13 insertions, 11 deletions
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);
+ }
+ }
}