This repository has been archived by the owner on Dec 11, 2020. It is now read-only.
forked from darlow/user_goals
-
Notifications
You must be signed in to change notification settings - Fork 3
/
config.ru
94 lines (85 loc) · 2.3 KB
/
config.ru
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
require "rubygems"
require "grape"
require "./application"
require "./tools/helper"
class API < Grape::API
prefix 'api'
format :json
resource :user do
params do
#requires :secret_token, type: String, desc: "Token sent from API Gateway"
requires :id, type: Integer, desc: "User id."
end
route_param :id do
get do
user = User.get(params[:id])
user_data = {
:id => user.id,
:name => user.username,
:email => user.email,
:avatar => user.avatar,
:reward => user.reward,
:reminder => user.reminder,
:repeat => user.repeat,
:goals => user.plans.map {|p|
{
:plan_id => p.id,
:goal_id => p.goal.id,
:title => p.goal.title,
:description => p.goal.description,
:done => p.done,
:priority => p.priority
}
},
:statistics => user.statistics
}
end
end
end
resource :meals do
desc "Get all meals"
get do
Category.all(:type => :food)
end
end
resource :activities do
desc "Get all activities"
get do
Category.all(:type => :activity)
end
end
resource :food do
desc "Get all foods within the given category"
params do
requires :id, type: Integer, desc: "Category id."
end
route_param :id do
get do
category = Category.get(params[:id])
if(category.type == :food) then
Item.all(:category => category)
else
JSON.parse('{"error": "id does not belong to the food category"}')
end
end
end
end
resource :activity do
desc "Get all activities within the given category"
params do
requires :id, type: Integer, desc: "Category id."
end
route_param :id do
get do
category = Category.get(params[:id])
if(category.type == :activity )
Item.all(:category => category)
else
JSON.parse('{"error": "id does not belong to the activity category"}')
end
end
end
end
end
set :protection, :origin_whitelist => ['http://user-goals-oauth-api-gateway.herokuapp.com']
run Rack::Cascade.new [Application, API, Helper]