summaryrefslogtreecommitdiff
path: root/src/services
diff options
context:
space:
mode:
authoreug-vs <eug-vs@keemail.me>2020-11-28 01:21:41 +0300
committereug-vs <eug-vs@keemail.me>2020-11-28 01:31:23 +0300
commitc3b76d1b5d0f85deb9a52dbe516c665ab4de8c07 (patch)
treecfb7d6fae788ca16260199f6d52d40e45920f94b /src/services
parent2a1b70edbdef4ab934d0091a92c14327dde8a256 (diff)
downloadbsu-fantom-c3b76d1b5d0f85deb9a52dbe516c665ab4de8c07.tar.gz
fix: re-fetch event before running
Diffstat (limited to 'src/services')
-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);
+ }
+ }
}