playlyfe 0.8.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/playlyfe.rb +30 -35
  2. data/test/test.rb +37 -41
  3. metadata +1 -17
data/lib/playlyfe.rb CHANGED
@@ -103,52 +103,48 @@ class Playlyfe
103
103
  end
104
104
  end
105
105
 
106
- def check_token(options)
106
+ def check_token(query)
107
107
  access_token = @load.call
108
108
  if access_token['expires_at'] < Time.now.to_i
109
109
  puts 'Access Token Expired'
110
110
  get_access_token()
111
111
  access_token = @load.call
112
112
  end
113
- options[:query][:access_token] = access_token['access_token']
113
+ query[:access_token] = access_token['access_token']
114
114
  end
115
115
 
116
- def api(options = {})
117
- options[:route] ||= ''
118
- options[:query] ||= {}
119
- options[:body] ||= {}
120
- options[:raw] ||= false
121
- check_token(options)
116
+ def api(method, route, query = {}, body = {}, raw = false)
117
+ check_token(query)
122
118
  begin
123
- case options[:method]
119
+ case method
124
120
  when 'GET'
125
- res = RestClient.get("https://api.playlyfe.com/#{@version}#{options[:route]}",
126
- {:params => options[:query] }
121
+ res = RestClient.get("https://api.playlyfe.com/#{@version}#{route}",
122
+ {:params => query }
127
123
  )
128
124
  when 'POST'
129
- res = RestClient.post("https://api.playlyfe.com/#{@version}#{options[:route]}?#{hash_to_query(options[:query])}",
130
- options[:body].to_json,
125
+ res = RestClient.post("https://api.playlyfe.com/#{@version}#{route}?#{hash_to_query(query)}",
126
+ body.to_json,
131
127
  :content_type => :json,
132
128
  :accept => :json
133
129
  )
134
130
  when 'PUT'
135
- res = RestClient.put("https://api.playlyfe.com/#{@version}#{options[:route]}?#{hash_to_query(options[:query])}",
136
- options[:body].to_json,
131
+ res = RestClient.put("https://api.playlyfe.com/#{@version}#{route}?#{hash_to_query(query)}",
132
+ body.to_json,
137
133
  :content_type => :json,
138
134
  :accept => :json
139
135
  )
140
136
  when 'PATCH'
141
- res = RestClient.patch("https://api.playlyfe.com/#{@version}#{options[:route]}?#{hash_to_query(options[:query])}",
142
- options[:body].to_json,
137
+ res = RestClient.patch("https://api.playlyfe.com/#{@version}#{route}?#{hash_to_query(query)}",
138
+ body.to_json,
143
139
  :content_type => :json,
144
140
  :accept => :json
145
141
  )
146
142
  when 'DELETE'
147
- res = RestClient.delete("https://api.playlyfe.com/#{@version}#{options[:route]}",
148
- {:params => options[:query] }
143
+ res = RestClient.delete("https://api.playlyfe.com/#{@version}#{route}",
144
+ {:params => query }
149
145
  )
150
146
  end
151
- if options[:raw] == true
147
+ if raw == true
152
148
  return res.body
153
149
  else
154
150
  if res.body == 'null'
@@ -162,29 +158,28 @@ class Playlyfe
162
158
  end
163
159
  end
164
160
 
165
- def get(options = {})
166
- options[:method] = "GET"
167
- api(options)
161
+ def get(route, query = {})
162
+ api("GET", route, query, {}, false)
168
163
  end
169
164
 
170
- def post(options = {})
171
- options[:method] = "POST"
172
- api(options)
165
+ def get_raw(route, query = {})
166
+ api("GET", route, query, {}, true)
173
167
  end
174
168
 
175
- def put(options = {})
176
- options[:method] = "PUT"
177
- api(options)
169
+ def post(route, query = {}, body = {})
170
+ api("POST", route, query, body, false)
178
171
  end
179
172
 
180
- def patch(options = {})
181
- options[:method] = "PATCH"
182
- api(options)
173
+ def put(route, query = {}, body = {})
174
+ api("PUT", route, query, body, false)
183
175
  end
184
176
 
185
- def delete(options = {})
186
- options[:method] = "DELETE"
187
- api(options)
177
+ def patch(route, query = {}, body = {})
178
+ api("PATCH", route, query, body, false)
179
+ end
180
+
181
+ def delete(route, query = {})
182
+ api("DELETE", route, query, {}, false)
188
183
  end
189
184
 
190
185
  def hash_to_query(hash)
data/test/test.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  require 'test/unit'
2
- require 'redis'
3
2
  require 'playlyfe'
4
3
 
5
4
  class PlaylyfeTest < Test::Unit::TestCase
@@ -39,61 +38,58 @@ class PlaylyfeTest < Test::Unit::TestCase
39
38
  )
40
39
 
41
40
  begin
42
- pl.get(route: '/gege', query: { player_id: 'student1' })
41
+ pl.get('/gege', { player_id: 'student1' })
43
42
  rescue PlaylyfeError => e
44
43
  assert_equal e.name,'route_not_found'
45
44
  assert_equal e.message, 'This route does not exist'
46
45
  end
47
46
 
48
- players = pl.api(method: 'GET', route: '/players', query: { player_id: 'student1', limit: 1 })
47
+ players = pl.api('GET', '/players', { player_id: 'student1', limit: 1 })
49
48
  assert_not_nil players["data"]
50
49
  assert_not_nil players["data"][0]
51
50
 
52
- players = pl.get(route: '/players', query: { player_id: 'student1', limit: 1 })
51
+ players = pl.get('/players', { player_id: 'student1', limit: 1 })
53
52
  assert_not_nil players["data"]
54
53
  assert_not_nil players["data"][0]
55
54
 
56
55
  begin
57
- pl.get(route: '/player')
56
+ pl.get('/player')
58
57
  rescue PlaylyfeError => e
59
58
  assert_equal e.message, "The 'player_id' parameter should be specified in the query"
60
59
  end
61
60
 
62
61
  player_id = 'student1'
63
- player = pl.get(route: '/player', query: { player_id: player_id } )
62
+ player = pl.get('/player', { player_id: player_id } )
64
63
  assert_equal player["id"], "student1"
65
64
  assert_equal player["alias"], "Student1"
66
65
  assert_equal player["enabled"], true
67
66
 
68
- pl.get(route: '/definitions/processes', query: { player_id: player_id } )
69
- pl.get(route:'/definitions/teams', query: { player_id: player_id } )
70
- pl.get(route: '/processes', query: { player_id: player_id } )
71
- pl.get(route: '/teams', query: { player_id: player_id } )
67
+ pl.get('/definitions/processes', { player_id: player_id } )
68
+ pl.get('/definitions/teams', { player_id: player_id } )
69
+ pl.get('/processes', { player_id: player_id } )
70
+ pl.get('/teams', { player_id: player_id } )
72
71
 
73
- processes = pl.get(route: '/processes', query: { player_id: 'student1', limit: 1, skip: 4 })
72
+ processes = pl.get('/processes', { player_id: 'student1', limit: 1, skip: 4 })
74
73
  assert_equal processes["data"][0]["definition"], "module1"
75
74
  assert_equal processes["data"].size, 1
76
75
 
77
- new_process = pl.post(route: '/definitions/processes/module1', query: { player_id: player_id })
76
+ new_process = pl.post('/definitions/processes/module1', { player_id: player_id })
78
77
  assert_equal new_process["definition"], "module1"
79
78
  assert_equal new_process["state"], "ACTIVE"
80
79
 
81
80
  patched_process = pl.patch(
82
- route: "/processes/#{new_process['id']}",
83
- query: { player_id: player_id },
84
- body: { name: 'patched_process', access: 'PUBLIC' }
81
+ "/processes/#{new_process['id']}",
82
+ { player_id: player_id },
83
+ { name: 'patched_process', access: 'PUBLIC' }
85
84
  )
86
85
 
87
86
  assert_equal patched_process['name'], 'patched_process'
88
87
  assert_equal patched_process['access'], 'PUBLIC'
89
88
 
90
- deleted_process = pl.delete(route: "/processes/#{new_process['id']}", query: { player_id: player_id })
89
+ deleted_process = pl.delete("/processes/#{new_process['id']}", { player_id: player_id })
91
90
  assert_not_nil deleted_process['message']
92
91
 
93
- #data = pl.put(route: "/players/#{player_id}/reset", query: { player_id: player_id })
94
- #puts data
95
-
96
- raw_data = pl.get(route: '/player', query: { player_id: player_id }, raw: true)
92
+ raw_data = pl.get_raw('/player', { player_id: player_id })
97
93
  assert_equal raw_data.class, String
98
94
  end
99
95
 
@@ -105,64 +101,64 @@ class PlaylyfeTest < Test::Unit::TestCase
105
101
  )
106
102
 
107
103
  begin
108
- pl.get(route: '/gege', query: { player_id: 'student1' })
104
+ pl.get('/gege', { player_id: 'student1' })
109
105
  rescue PlaylyfeError => e
110
106
  assert_equal e.name,'route_not_found'
111
107
  assert_equal e.message, 'This route does not exist'
112
108
  end
113
109
 
114
- players = pl.api(method: 'GET', route: '/runtime/players', query: { player_id: 'student1', limit: 1 })
110
+ players = pl.api('GET', '/runtime/players', { player_id: 'student1', limit: 1 })
115
111
  assert_not_nil players["data"]
116
112
  assert_not_nil players["data"][0]
117
113
 
118
- players = pl.get(route: '/runtime/players', query: { player_id: 'student1', limit: 1 })
114
+ players = pl.get('/runtime/players', { player_id: 'student1', limit: 1 })
119
115
  assert_not_nil players["data"]
120
116
  assert_not_nil players["data"][0]
121
117
 
122
118
  begin
123
- pl.get(route: '/runtime/player')
119
+ pl.get('/runtime/player')
124
120
  rescue PlaylyfeError => e
125
121
  assert_equal e.message, "The 'player_id' parameter should be specified in the query"
126
122
  end
127
123
 
128
124
  player_id = 'student1'
129
- player = pl.get(route: '/runtime/player', query: { player_id: player_id } )
125
+ player = pl.get('/runtime/player', { player_id: player_id } )
130
126
  assert_equal player["id"], "student1"
131
127
  assert_equal player["alias"], "Student1"
132
128
  assert_equal player["enabled"], true
133
129
 
134
- pl.get(route: '/runtime/definitions/processes', query: { player_id: player_id } )
135
- pl.get(route:'/runtime/definitions/teams', query: { player_id: player_id } )
136
- pl.get(route: '/runtime/processes', query: { player_id: player_id } )
137
- pl.get(route: '/runtime/teams', query: { player_id: player_id } )
130
+ pl.get('/runtime/definitions/processes', { player_id: player_id } )
131
+ pl.get('/runtime/definitions/teams', { player_id: player_id } )
132
+ pl.get('/runtime/processes', { player_id: player_id } )
133
+ pl.get('/runtime/teams', { player_id: player_id } )
138
134
 
139
- processes = pl.get(route: '/runtime/processes', query: { player_id: 'student1', limit: 1, skip: 4 })
135
+ processes = pl.get('/runtime/processes', { player_id: 'student1', limit: 1, skip: 4 })
140
136
  assert_equal processes["data"][0]["definition"], "module1"
141
137
  assert_equal processes["data"].size, 1
142
138
 
143
- new_process = pl.post(route: '/runtime/processes', query: { player_id: player_id }, body: { definition: 'module1' })
139
+ new_process = pl.post('/runtime/processes', { player_id: player_id }, { definition: 'module1' })
144
140
  assert_equal new_process["definition"]["id"], "module1"
145
141
  assert_equal new_process["state"], "ACTIVE"
146
142
 
147
143
  patched_process = pl.patch(
148
- route: "/runtime/processes/#{new_process['id']}",
149
- query: { player_id: player_id },
150
- body: { name: 'patched_process', access: 'PUBLIC' }
144
+ "/runtime/processes/#{new_process['id']}",
145
+ { player_id: player_id },
146
+ { name: 'patched_process', access: 'PUBLIC' }
151
147
  )
152
148
 
153
149
  assert_equal patched_process['name'], 'patched_process'
154
150
  assert_equal patched_process['access'], 'PUBLIC'
155
151
 
156
- deleted_process = pl.delete(route: "/runtime/processes/#{new_process['id']}", query: { player_id: player_id })
152
+ deleted_process = pl.delete("/runtime/processes/#{new_process['id']}", { player_id: player_id })
157
153
  assert_not_nil deleted_process['message']
158
154
 
159
- #data = pl.put(route: "/players/#{player_id}/reset", query: { player_id: player_id })
155
+ #data = pl.put("/players/#{player_id}/reset", { player_id: player_id })
160
156
  #puts data
161
157
 
162
- raw_data = pl.get(route: '/runtime/player', query: { player_id: player_id }, raw: true)
158
+ raw_data = pl.get_raw('/runtime/player', { player_id: player_id })
163
159
  assert_equal raw_data.class, String
164
160
 
165
- new_metric = pl.post(route: '/design/versions/latest/metrics', query: {}, body: {
161
+ new_metric = pl.post('/design/versions/latest/metrics', {}, {
166
162
  id: 'apple',
167
163
  name: 'apple',
168
164
  type: 'point',
@@ -175,7 +171,7 @@ class PlaylyfeTest < Test::Unit::TestCase
175
171
  }
176
172
  });
177
173
  assert_equal new_metric['id'], 'apple'
178
- deleted_metric = pl.delete(route: '/design/versions/latest/metrics/apple')
174
+ deleted_metric = pl.delete('/design/versions/latest/metrics/apple')
179
175
  assert_equal deleted_metric['message'], "The metric 'apple' has been deleted successfully"
180
176
  end
181
177
 
@@ -186,7 +182,7 @@ class PlaylyfeTest < Test::Unit::TestCase
186
182
  client_secret: "NDc3NTA0NmItMjBkZi00MjI2LWFhMjUtOTI0N2I1YTkxYjc2M2U3ZGI0MDAtNGQ1Mi0xMWU0LWJmZmUtMzkyZTdiOTYxYmMx",
187
183
  type: 'client'
188
184
  )
189
- pl.get(route: '/game/players', query: { limit: 1 })
185
+ pl.get('/game/players', { limit: 1 })
190
186
  end
191
187
 
192
188
  def test_store
@@ -199,7 +195,7 @@ class PlaylyfeTest < Test::Unit::TestCase
199
195
  store: lambda { |token| access_token = token },
200
196
  load: lambda { return access_token }
201
197
  )
202
- players = pl.get(route: '/players', query: { player_id: 'student1', limit: 1 })
198
+ players = pl.get('/players', { player_id: 'student1', limit: 1 })
203
199
  assert_not_nil players["data"]
204
200
  assert_not_nil players["data"][0]
205
201
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playlyfe
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -75,22 +75,6 @@ dependencies:
75
75
  - - ! '>='
76
76
  - !ruby/object:Gem::Version
77
77
  version: '0'
78
- - !ruby/object:Gem::Dependency
79
- name: redis
80
- requirement: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ! '>='
84
- - !ruby/object:Gem::Version
85
- version: '0'
86
- type: :development
87
- prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ! '>='
92
- - !ruby/object:Gem::Version
93
- version: '0'
94
78
  description: This gem can be used to interact with the playlyfe gamification platform
95
79
  using oauth 2.0
96
80
  email: peter@playlyfe.com