-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathevents.js
54 lines (46 loc) · 1.33 KB
/
events.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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
'use strict';
var qs = require('querystring'),
path = require('path'),
util = require('util'),
async = require('async'),
request = require('request'),
moment = require('moment'),
config = require('./config.json');
var groups = [ 'BogotaJS', 'MedellinJS', 'CaliJS' ];
moment.locale("es");
module.exports = function (callback) {
async.map(groups, fetchEvents, callback);
function fetchEvents(group, next) {
var url = 'https://api.meetup.com/2/events?';
var params = {
sign: true,
group_urlname: group,
status: 'upcoming,past',
page: 2,
desc: true,
key: config.meetup.apiKey
};
url += qs.stringify(params);
request(url, function onRequest(err, res, body) {
if (err) return callback(err);
var meetupEvents = JSON.parse(body).results;
var events = meetupEvents.map(function (e) {
var event = {
id: e.id,
title: e.name,
description: e.description,
link: e.event_url,
attending: e.yes_rsvp_count,
date: moment(e.time).format("LLLL"),
venue: {
name: e.venue.name,
address: e.venue.address_1
},
status: e.status
};
return event;
});
next(null, { group: group, events: events });
});
}
};