-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathroutes.coffee
45 lines (36 loc) · 1.48 KB
/
routes.coffee
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
passport = require 'passport'
models = require './models'
@include = ->
@get '/': ->
@render 'landing': { passport: @session.passport }
@post '/set_location': ->
@session.location = @body.location or { latitude: 51.518190, longitude: -0.178099 }
@response.json @session.location
@get '/journeys': ->
if not @session.location
@session.location = { latitude: 51.518190, longitude: -0.178099 }
lat = @query.lat or @session.location.latitude
lon = @query.lon or @session.location.longitude
models.journey.find({ location : { $near : [lat,lon] } })
.limit(10)
.exec (err, journeys) =>
if err
throw err
else
@render 'journeys': { journeys: journeys, passport: @session.passport }
@get '/checked-in': ->
@render 'checked_in': { passport: @session.passport }
@get '/checkin/:journey': ->
models.journey.findById @params.journey, (err, journey) =>
if err
throw err
else
@render 'checkin': {passport: @session.passport, journey: journey}
@get '/env': -> @response.json process.env
# Authenication
@app.get '/auth/google', passport.authenticate 'google'
@app.get '/auth/google/return', passport.authenticate 'google', { successRedirect: '/', failureRedirect: '/login' }
@get '/auth/:provider': ->
passport.authenticate @params.provider
@get '/auth/:provider/return': ->
passport.authenticate @params.provider, { successRedirect: '/', failureRedirect: '/login' }