Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save therebelrobot/72d3e4c4ba19eddf99a0 to your computer and use it in GitHub Desktop.
Save therebelrobot/72d3e4c4ba19eddf99a0 to your computer and use it in GitHub Desktop.
eventsSchema.statics.fetchMeetupEvents = function (meetupid) {
return new Promise(function (resolve, reject) {
request(meetupid, function (error, response, body) {
if (!error && response.statusCode === 200) {
var parsed = JSON.parse(body)
resolve(parsed.results)
}else{
reject(error)
}
})
})
}
getEvents: function (req, res) {
var meetupid = "www.meetup.com/Code-for-San-Francisco-Civic-Hack-Night/".split(".com/")[1].replace(/\//g, "") //need to replace with schema call
var url = 'https://api.meetup.com/2/events?&sign=true&photo-host=public&group_urlname=' + meetupid + '&page=50'
var aggregate = []
Events.fetchMeetupEvents(url).then(function(result){
result.forEach(function(item){
var event = {
title: item.name,
start: new Date(item.time).toLocaleString(),
venue: item.venue.name,
address: item.venue.address_1,
city: item.venue.city,
url_page: item.event_url
}
aggregate.push(event)
})
if(aggregate.length < 1){
throw new Error("We could not find any events on your Meetup account. Please check your Meetup.com link if you were expecting some to show.")
}
res.render(res.locals.brigade.theme.slug + '/views/events/index', {
events: aggregate,
upcomingevents: aggregate.slice(0,10),
title: 'Events',
brigade: res.locals.brigade
})
}).catch(function (err) {
req.flash('errors', {msg: err})
res.render(res.locals.brigade.theme.slug + '/views/events/index', {
events: [],
upcomingevents: aggregate.slice(0,10),
title: 'Events',
brigade: res.locals.brigade
})
})
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment