-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.js
36 lines (31 loc) · 1.14 KB
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
"use strict";
const moment = require('moment');
const helper = require('./utils/helper');
const meetup = require('./utils/meetup');
const slack = require('./utils/slack');
const reminder = require('./utils/reminder');
const args = helper.getProcessArguments();
if (!args['config']) {
console.error('Please provide a config file via the "config" argument');
process.exit(1);
}
const config = require(`./${args['config']}`);
meetup.getUpcomingEvents(config.meetup.apikey, config.meetup.group)
.then((data) => {
const requests = data.results
.map((event) => {
const activeReminder = reminder.active(config.reminders.daysAhead, moment(event.time));
return {
event,
activeReminder
};
})
.filter((event) => event.activeReminder && !event.event.series)
.map((event) => {
const message = reminder.createReminder(event);
return slack.sendReminder(config.slack, message);
});
return Promise.all(requests);
}).catch((error) => {
console.log(error);
});