quickblox 0.1.1 → 0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/quickblox.rb +339 -270
- metadata +2 -2
data/lib/quickblox.rb
CHANGED
@@ -12,16 +12,16 @@ class Quickblox
|
|
12
12
|
|
13
13
|
def configs
|
14
14
|
config = YAML.load_file("config.yml")
|
15
|
-
@application_id = config["
|
16
|
-
@auth_key = config["
|
17
|
-
@auth_secret = config["
|
18
|
-
@user_owner_id = config["
|
19
|
-
@server=config["
|
15
|
+
@application_id = config["quickblox"]["application_id"]
|
16
|
+
@auth_key = config["quickblox"]["auth_key"]
|
17
|
+
@auth_secret = config["quickblox"]["auth_secret"]
|
18
|
+
@user_owner_id = config["quickblox"]["user_owner_id"]
|
19
|
+
@server=config["quickblox"]["server"]
|
20
20
|
#to remove - for debug
|
21
|
-
@user_login=config["
|
22
|
-
@user_password=config["
|
23
|
-
@device_platform= config["
|
24
|
-
@device_udid= config["
|
21
|
+
@user_login=config["quickblox"]["user_login"]
|
22
|
+
@user_password=config["quickblox"]["user_password"]
|
23
|
+
@device_platform= config["quickblox"]["device_platform"]
|
24
|
+
@device_udid= config["quickblox"]["device_udid"]
|
25
25
|
|
26
26
|
end
|
27
27
|
|
@@ -66,12 +66,15 @@ class Quickblox
|
|
66
66
|
@device_udid
|
67
67
|
end
|
68
68
|
|
69
|
-
|
69
|
+
def get_user_id
|
70
|
+
@token = get_token("user") unless @token_type=='user'
|
71
|
+
@user_id
|
72
|
+
end
|
73
|
+
|
70
74
|
def get_token(type = 'app')
|
71
75
|
destroy_token if @token
|
72
76
|
timestamp=Time.now.to_i
|
73
77
|
nonce=rand(10000)
|
74
|
-
|
75
78
|
hash = {:application_id => @application_id, :nonce => nonce, :auth_key => @auth_key, :timestamp => timestamp}
|
76
79
|
hash.merge!({:user => {:login => @user_login, :password => @user_password, :owner_id => @user_owner_id}}) if type == 'user' || type == 'user_device'
|
77
80
|
hash.merge!({:device => {:platform => @device_platform, :udid => @device_udid}}) if type == 'device' || type == 'user_device'
|
@@ -79,32 +82,31 @@ class Quickblox
|
|
79
82
|
signature = HMAC::SHA1.hexdigest(@auth_secret, normalized)
|
80
83
|
req = Net::HTTP::Post.new(@auth_uri.path)
|
81
84
|
req.body = "#{normalized}&signature=#{signature}"
|
82
|
-
|
85
|
+
response = Net::HTTP.start(@auth_uri.host, @auth_uri.port) do |http|
|
83
86
|
http.request(req)
|
84
87
|
end
|
85
|
-
|
88
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "201"
|
86
89
|
@token_type=type
|
87
|
-
@user_id=JSON.parse(
|
88
|
-
@token=JSON.parse(
|
90
|
+
@user_id=JSON.parse(response.body)["session"]["user_id"]
|
91
|
+
@token=JSON.parse(response.body)["session"]["token"]
|
89
92
|
end
|
90
93
|
|
91
|
-
#Destroys existing token
|
92
94
|
def destroy_token
|
93
95
|
http = Net::HTTP.new(@server)
|
94
96
|
delete_token = Net::HTTP::Delete.new("/auth_exit?token=#{@token}")
|
95
|
-
|
97
|
+
@token=nil
|
98
|
+
response=http.request(delete_token)
|
99
|
+
{:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)}
|
96
100
|
end
|
97
101
|
|
98
|
-
#Users API Requests
|
99
102
|
|
100
|
-
#Retrieve users count of the application
|
101
103
|
def get_users_count(at_uri=nil, at_param=nil)
|
102
104
|
@token = get_token unless @token
|
103
|
-
|
104
|
-
JSON.parse(
|
105
|
+
response = Net::HTTP.get_response(URI(@users_uri.to_s+"#{at_uri}.json")+"?token=#{@token}#{at_param}")
|
106
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
107
|
+
JSON.parse(response.body)["total_entries"]
|
105
108
|
end
|
106
109
|
|
107
|
-
#Retrieve all users of the application
|
108
110
|
def get_all_users_list
|
109
111
|
@token = get_token unless @token
|
110
112
|
@users_count = get_users_count unless @users_count
|
@@ -119,42 +121,40 @@ class Quickblox
|
|
119
121
|
users
|
120
122
|
end
|
121
123
|
|
122
|
-
|
123
|
-
def get_users_list (page=nil, per_page=nil)
|
124
|
+
def get_users_list (page=1, per_page=10)
|
124
125
|
@token = get_token unless @token
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
JSON.parse(user_list.body)["items"]
|
126
|
+
response=Net::HTTP.get_response(URI(@users_uri.to_s+".json")+"?token=#{@token}&per_page=#{per_page}&page=#{page}")
|
127
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
128
|
+
JSON.parse(response.body)
|
129
129
|
end
|
130
130
|
|
131
|
-
#Create a new user
|
132
131
|
def signup_user(user_params)
|
133
132
|
@token = get_token unless @token_type=='app'
|
133
|
+
user_params.merge! "token" => @token, "user[owner_id]" => @user_owner_id
|
134
134
|
normalized= normalize(user_params)
|
135
|
-
req = Net::HTTP::Post.new(@users_uri.path)
|
136
|
-
req.body = "#{normalized}
|
137
|
-
Net::HTTP.start(@users_uri.host) do |http|
|
135
|
+
req = Net::HTTP::Post.new(URI(@users_uri.to_s+".json").path)
|
136
|
+
req.body = "#{normalized}"
|
137
|
+
response=Net::HTTP.start(@users_uri.host) do |http|
|
138
138
|
http.request(req)
|
139
139
|
end
|
140
|
-
|
140
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
141
|
+
JSON.parse(response.body)
|
141
142
|
end
|
142
143
|
|
143
|
-
#Get usser info by ID
|
144
144
|
def get_user_by_id(id)
|
145
145
|
@token = get_token unless @token
|
146
|
-
|
147
|
-
JSON.parse(
|
146
|
+
response = Net::HTTP.get_response(URI(@users_uri.to_s+"/#{id}.json")+"?token=#{@token}")
|
147
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
148
|
+
JSON.parse(response.body)
|
148
149
|
end
|
149
150
|
|
150
|
-
#Get user info by login
|
151
151
|
def get_user_by_login(login)
|
152
152
|
@token = get_token unless @token
|
153
|
-
|
154
|
-
JSON.parse(
|
153
|
+
response = Net::HTTP.get_response(URI(@users_uri.to_s+"/by_login.json")+"?token=#{@token}&login=#{login}")
|
154
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
155
|
+
JSON.parse(response.body)
|
155
156
|
end
|
156
157
|
|
157
|
-
#Get all users by fullname
|
158
158
|
def get_all_users_by_fullname(fullname)
|
159
159
|
en_fullname = URI::encode(fullname)
|
160
160
|
@token = get_token unless @token
|
@@ -170,38 +170,35 @@ class Quickblox
|
|
170
170
|
users
|
171
171
|
end
|
172
172
|
|
173
|
-
|
174
|
-
def get_users_by_fullname(fullname, page=nil, per_page=nil)
|
173
|
+
def get_users_by_fullname(fullname, page=1, per_page=10)
|
175
174
|
en_fullname = URI::encode(fullname)
|
176
|
-
page=1 unless page
|
177
|
-
per_page=10 unless per_page
|
178
175
|
@token = get_token unless @token
|
179
|
-
|
180
|
-
JSON.parse(
|
176
|
+
response=Net::HTTP.get_response(URI(@users_uri.to_s+"/by_full_name.json")+"?token=#{@token}&per_page=#{per_page}&page=#{page}&full_name=#{en_fullname}")
|
177
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
178
|
+
JSON.parse(response.body)
|
181
179
|
end
|
182
180
|
|
183
|
-
#Get user by facebook ID
|
184
181
|
def get_user_by_facebook_id(fbid)
|
185
182
|
@token = get_token unless @token
|
186
|
-
|
187
|
-
JSON.parse(
|
183
|
+
response= Net::HTTP.get_response(URI(@users_uri.to_s+"/by_facebook_id.json")+"?token=#{@token}&facebook_id=#{fbid}")
|
184
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
185
|
+
JSON.parse(response.body)
|
188
186
|
end
|
189
187
|
|
190
|
-
#Get user by twitter ID
|
191
188
|
def get_user_by_twitter_id(twid)
|
192
189
|
@token = get_token unless @token
|
193
|
-
|
194
|
-
JSON.parse(
|
190
|
+
response= Net::HTTP.get_response(URI(@users_uri.to_s+"/by_twitter_id.json")+"?token=#{@token}&twitter_id=#{twid}")
|
191
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
192
|
+
JSON.parse(response.body)
|
195
193
|
end
|
196
194
|
|
197
|
-
#Get user by email
|
198
195
|
def get_user_by_email(email)
|
199
196
|
@token = get_token unless @token
|
200
|
-
|
201
|
-
JSON.parse(
|
197
|
+
response= Net::HTTP.get_response(URI(@users_uri.to_s+"/by_email.json")+"?token=#{@token}&email=#{email}")
|
198
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
199
|
+
JSON.parse(response.body)
|
202
200
|
end
|
203
201
|
|
204
|
-
#Get all users by tags
|
205
202
|
def get_all_users_by_tags(tags)
|
206
203
|
en_tags = URI::encode(tags)
|
207
204
|
@token = get_token unless @token
|
@@ -217,42 +214,44 @@ class Quickblox
|
|
217
214
|
users
|
218
215
|
end
|
219
216
|
|
220
|
-
#Get users by tags with pagination
|
221
217
|
def get_users_by_tags(tags, page=nil, per_page=nil)
|
222
218
|
en_tags = URI::encode(tags)
|
223
219
|
@token = get_token unless @token
|
224
220
|
page=1 unless page
|
225
221
|
per_page=10 unless per_page
|
226
|
-
|
227
|
-
JSON.parse(
|
222
|
+
response=Net::HTTP.get_response(URI(@users_uri.to_s+"/by_tags.json")+"?token=#{@token}&per_page=#{per_page}&page=#{page}&tags=#{en_tags}")
|
223
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
224
|
+
JSON.parse(response.body)
|
228
225
|
end
|
229
226
|
|
230
|
-
|
231
|
-
def update_user_by_id(user_params)
|
227
|
+
def update_user(user_params)
|
232
228
|
@token = get_token("user") unless @token_type=='user'
|
233
229
|
user_params.merge! "token" => @token
|
234
230
|
normalized= normalize(user_params)
|
235
|
-
|
231
|
+
return "ERROR: No user is logged in" unless @user_id
|
232
|
+
req = Net::HTTP::Put.new(URI(@users_uri.to_s+"/"+@user_id.to_s+".json").path)
|
236
233
|
req.body = "#{normalized}"
|
237
|
-
Net::HTTP.start(@users_uri.host) do |http|
|
234
|
+
response=Net::HTTP.start(@users_uri.host) do |http|
|
238
235
|
http.request(req)
|
239
236
|
end
|
240
|
-
|
237
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
238
|
+
JSON.parse(response.body)
|
241
239
|
end
|
242
240
|
|
243
|
-
#Delete user
|
244
241
|
def delete_user
|
245
242
|
@token = get_token("user") unless @token_type=='user'
|
243
|
+
return "ERROR: No user is logged in" unless @user_id
|
246
244
|
http = Net::HTTP.new(@server)
|
247
245
|
delete_user = Net::HTTP::Delete.new("/users/#{@user_id}?token=#{@token}")
|
248
|
-
http.request(delete_user)
|
246
|
+
response=http.request(delete_user)
|
247
|
+
{:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)}
|
249
248
|
end
|
250
249
|
|
251
|
-
#Get user info by external ID
|
252
250
|
def get_user_by_external_id (external_id)
|
253
251
|
@token = get_token unless @token
|
254
|
-
|
255
|
-
JSON.parse(
|
252
|
+
response= Net::HTTP.get_response(URI(@users_uri.to_s+"/external/#{external_id}.json")+"?token=#{@token}")
|
253
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
254
|
+
JSON.parse(response.body)
|
256
255
|
end
|
257
256
|
|
258
257
|
#Get external ID by user ID
|
@@ -260,91 +259,103 @@ class Quickblox
|
|
260
259
|
get_user_by_id(id)["external_user_id"]
|
261
260
|
end
|
262
261
|
|
263
|
-
#Delete User by external ID
|
264
|
-
def delete_user_by_external_id
|
265
|
-
@token = get_token("user") unless @token_type=='user'
|
266
|
-
external_id = get_external_id_by_user_id(@user_id)
|
267
|
-
http = Net::HTTP.new(@server)
|
268
|
-
delete_user = Net::HTTP::Delete.new("/users/external/#{external_id}?token=#{@token}")
|
269
|
-
http.request(delete_user)
|
270
|
-
end
|
271
262
|
|
272
|
-
#Location API Requests
|
273
|
-
|
274
|
-
#Create Geodatum
|
275
263
|
def create_geodatum(geodata_params)
|
276
264
|
@token = get_token("user") unless @token_type=='user'
|
265
|
+
return "ERROR: No user is logged in" unless @user_id
|
277
266
|
geodata_params.merge! "token" => @token
|
278
267
|
normalized= normalize(geodata_params)
|
279
|
-
req = Net::HTTP::Post.new(@geodata_uri.path)
|
268
|
+
req = Net::HTTP::Post.new(URI(@geodata_uri.to_s+".json").path)
|
280
269
|
req.body = "#{normalized}"
|
281
|
-
Net::HTTP.start(@geodata_uri.host) do |http|
|
270
|
+
response=Net::HTTP.start(@geodata_uri.host) do |http|
|
282
271
|
http.request(req)
|
283
272
|
end
|
273
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
274
|
+
JSON.parse(response.body)
|
284
275
|
end
|
285
276
|
|
286
|
-
#Get geodata by ID
|
287
277
|
def get_geodata_by_id (geodata_id)
|
288
278
|
@token = get_token unless @token
|
289
|
-
|
290
|
-
JSON.parse(
|
279
|
+
response= Net::HTTP.get_response(URI(@geodata_uri.to_s+"/#{geodata_id}.json")+"?token=#{@token}")
|
280
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
281
|
+
JSON.parse(response.body)
|
291
282
|
end
|
292
283
|
|
293
|
-
|
294
|
-
def get_geodata(geodata)
|
284
|
+
def get_geodata(params)
|
295
285
|
@token = get_token unless @token
|
296
|
-
normalized= normalize(
|
297
|
-
|
298
|
-
JSON.parse(
|
286
|
+
normalized= normalize(params)
|
287
|
+
response= Net::HTTP.get_response(URI(@geodata_uri.to_s+"/find.json")+"?#{normalized}&token=#{@token}")
|
288
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
289
|
+
JSON.parse(response.body)
|
299
290
|
end
|
300
291
|
|
301
292
|
def delete_geodata(days)
|
302
293
|
@token = get_token("user") unless @token_type=='user'
|
294
|
+
return "ERROR: No user is logged in" unless @user_id
|
303
295
|
http = Net::HTTP.new(@server)
|
304
296
|
delete_geodata = Net::HTTP::Delete.new("/geodata?token=#{@token}&days=#{days}")
|
305
|
-
http.request(delete_geodata)
|
297
|
+
response=http.request(delete_geodata)
|
298
|
+
{:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)}
|
299
|
+
end
|
300
|
+
|
301
|
+
def delete_geodata_by_id(id)
|
302
|
+
@token = get_token("user") unless @token_type=='user'
|
303
|
+
return "ERROR: No user is logged in" unless @user_id
|
304
|
+
http = Net::HTTP.new(@server)
|
305
|
+
delete_geodata = Net::HTTP::Delete.new("/geodata/#{id}?token=#{@token}")
|
306
|
+
response=http.request(delete_geodata)
|
307
|
+
{:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)}
|
306
308
|
end
|
307
309
|
|
308
310
|
def create_place(place_params)
|
309
311
|
@token = get_token("user") unless @token_type=='user'
|
312
|
+
return "ERROR: No user is logged in" unless @user_id
|
310
313
|
place_params.merge! "token" => @token
|
311
314
|
normalized= normalize(place_params)
|
312
|
-
req = Net::HTTP::Post.new(@places_uri.path)
|
315
|
+
req = Net::HTTP::Post.new(URI(@places_uri.to_s+".json").path)
|
313
316
|
req.body = "#{normalized}"
|
314
|
-
Net::HTTP.start(@places_uri.host) do |http|
|
317
|
+
response=Net::HTTP.start(@places_uri.host) do |http|
|
315
318
|
http.request(req)
|
316
319
|
end
|
320
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "201"
|
321
|
+
JSON.parse(response.body)
|
317
322
|
end
|
318
323
|
|
319
324
|
def get_places(page=1, per_page=10)
|
320
325
|
@token = get_token unless @token
|
321
|
-
|
322
|
-
JSON.parse(
|
326
|
+
response=Net::HTTP.get_response(URI(@places_uri.to_s+".json")+"?token=#{@token}&per_page=#{per_page}&page=#{page}")
|
327
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
328
|
+
JSON.parse(response.body)
|
323
329
|
end
|
324
330
|
|
325
331
|
def get_places_by_id(id)
|
326
332
|
@token = get_token unless @token
|
327
|
-
|
328
|
-
|
329
|
-
JSON.parse(
|
333
|
+
response=Net::HTTP.get_response(URI(@places_uri.to_s+"/#{id}.json")+"?token=#{@token}")
|
334
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
335
|
+
JSON.parse(response.body)
|
330
336
|
end
|
331
337
|
|
332
338
|
def update_place_by_id(id, place_params)
|
333
339
|
@token = get_token("user") unless @token_type=='user'
|
340
|
+
return "ERROR: No user is logged in" unless @user_id
|
334
341
|
place_params.merge! "token" => @token
|
335
|
-
normalized= normalize(
|
336
|
-
req = Net::HTTP::Put.new(URI(@places_uri.to_s+"/#{id}").path)
|
342
|
+
normalized= normalize(place_params)
|
343
|
+
req = Net::HTTP::Put.new(URI(@places_uri.to_s+"/#{id}.json").path)
|
337
344
|
req.body = "#{normalized}"
|
338
|
-
Net::HTTP.start(@places_uri.host) do |http|
|
345
|
+
response=Net::HTTP.start(@places_uri.host) do |http|
|
339
346
|
http.request(req)
|
340
347
|
end
|
348
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
349
|
+
JSON.parse(response.body)
|
341
350
|
end
|
342
351
|
|
343
352
|
def delete_place_by_id(id)
|
344
353
|
@token = get_token("user") unless @token_type=='user'
|
354
|
+
return "ERROR: No user is logged in" unless @user_id
|
345
355
|
http = Net::HTTP.new(@server)
|
346
356
|
delete_place = Net::HTTP::Delete.new("/places/#{id}?token=#{@token}")
|
347
|
-
http.request(delete_place)
|
357
|
+
response=http.request(delete_place)
|
358
|
+
{:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)}
|
348
359
|
end
|
349
360
|
|
350
361
|
|
@@ -353,79 +364,102 @@ class Quickblox
|
|
353
364
|
|
354
365
|
def create_file(filename, file_params)
|
355
366
|
@token = get_token("user") unless @token_type=='user'
|
367
|
+
return "ERROR: No user is logged in" unless @user_id
|
356
368
|
file_params.merge! "token" => @token, "blob[multipart]" => 0
|
357
369
|
normalized = normalize(file_params)
|
358
370
|
req = Net::HTTP::Post.new(URI(@files_uri.to_s+".json").path)
|
359
371
|
req.body = "#{normalized}"
|
360
|
-
|
372
|
+
response = Net::HTTP.start(URI(@files_uri.to_s+".json").host) do |http|
|
361
373
|
http.request(req)
|
362
374
|
end
|
363
|
-
|
375
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "201"
|
376
|
+
link=JSON.parse(response.body)["blob"]["blob_object_access"]["params"]
|
364
377
|
uri=URI(link)
|
365
378
|
query = {}
|
366
|
-
CGI.parse(uri.query).map { |k, v| query.merge!({k =>
|
379
|
+
CGI.parse(uri.query).map { |k, v| query.merge!({k => v[0]}) }
|
367
380
|
query.merge! "file" => File.read(filename)
|
368
381
|
req = Net::HTTP::Post::Multipart.new uri.path, query
|
369
|
-
|
382
|
+
s3=Net::HTTP.start(uri.host, uri.port) do |http|
|
370
383
|
http.request(req)
|
371
384
|
end
|
372
|
-
|
385
|
+
return {:response_code => s3.code, :response_header => s3, :response_body => (JSON.parse(s3.body) rescue nil)} unless s3.code == "201"
|
386
|
+
blobid = JSON.parse(response.body)["blob"]["id"]
|
373
387
|
filesize = File.size(filename)
|
374
388
|
req = Net::HTTP::Put.new(URI(@files_uri.to_s+"/#{blobid}/complete.json").path)
|
375
389
|
req.body = "blob[size]=#{filesize}&token=#{@token}"
|
376
|
-
|
390
|
+
complete=Net::HTTP.start(@places_uri.host) do |http|
|
377
391
|
http.request(req)
|
378
392
|
end
|
379
|
-
JSON.parse(
|
393
|
+
return {:response_code => complete.code, :response_header => complete, :response_body => (JSON.parse(complete.body) rescue nil)} unless complete.code == "200"
|
394
|
+
get_file_info_by_id(blobid)
|
380
395
|
end
|
381
396
|
|
382
397
|
def get_file_info_by_id(id)
|
383
398
|
@token = get_token unless @token
|
384
|
-
|
385
|
-
JSON.parse(
|
399
|
+
response = Net::HTTP.get_response(URI(@files_uri.to_s+"/#{id}.json")+"?token=#{@token}")
|
400
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
401
|
+
JSON.parse(response.body)
|
402
|
+
end
|
403
|
+
|
404
|
+
def get_files_list(page=1, per_page=10)
|
405
|
+
@token = get_token("user") unless @token_type=='user'
|
406
|
+
return "ERROR: No user is logged in" unless @user_id
|
407
|
+
response = Net::HTTP.get_response(URI(@files_uri.to_s+".json")+"?token=#{@token}&page=#{page}&per_page=#{per_page}")
|
408
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
409
|
+
JSON.parse(response.body)
|
386
410
|
end
|
387
411
|
|
388
|
-
def get_file_link_by_uid(
|
412
|
+
def get_file_link_by_uid(uid)
|
389
413
|
@token = get_token unless @token
|
390
|
-
|
391
|
-
|
414
|
+
response = Net::HTTP.get_response(URI(@files_uri.to_s+"/#{uid}.json"+"?token=#{@token}"))
|
415
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "302"
|
416
|
+
CGI::unescapeHTML(response.body.gsub("<html><body>You are being <a href=\"", '').gsub("\">redirected</a>.</body></html>", ''))
|
392
417
|
end
|
393
418
|
|
394
419
|
def get_file_link_by_id(id)
|
395
420
|
@token = get_token unless @token
|
396
421
|
req = Net::HTTP::Post.new(URI(@files_uri.to_s+"/#{id}/getblobobjectbyid.json").path)
|
397
422
|
req.body = "token=#{@token}"
|
398
|
-
|
423
|
+
response=Net::HTTP.start(@files_uri.host) do |http|
|
399
424
|
http.request(req)
|
400
425
|
end
|
401
|
-
JSON.parse(
|
426
|
+
{:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
427
|
+
JSON.parse(response.body)["blob_object_access"]["params"]
|
402
428
|
end
|
403
429
|
|
404
430
|
def edit_file_by_id(id, params)
|
405
431
|
@token = get_token("user") unless @token_type=='user'
|
432
|
+
return "ERROR: No user is logged in" unless @user_id
|
406
433
|
req = Net::HTTP::Put.new(URI(@files_uri.to_s+"/#{id}.json").path)
|
407
434
|
params.merge! "token" => @token
|
408
435
|
normalized= normalize(params)
|
409
436
|
req.body = "#{normalized}"
|
410
|
-
|
437
|
+
response=Net::HTTP.start(@files_uri.host) do |http|
|
411
438
|
http.request(req)
|
412
439
|
end
|
440
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
441
|
+
JSON.parse(response.body)
|
413
442
|
end
|
414
443
|
|
415
444
|
def delete_file(id)
|
416
445
|
@token = get_token("user") unless @token_type=='user'
|
446
|
+
return "ERROR: No user is logged in" unless @user_id
|
417
447
|
http = Net::HTTP.new(@server)
|
418
|
-
|
419
|
-
http.request(
|
448
|
+
delete=Net::HTTP::Delete.new("/blobs/#{id}/?token=#{@token}")
|
449
|
+
response=http.request(delete)
|
450
|
+
{:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)}
|
420
451
|
end
|
421
452
|
|
422
453
|
def increase_file_links(id)
|
423
454
|
@token = get_token("user") unless @token_type=='user'
|
455
|
+
return "ERROR: No user is logged in" unless @user_id
|
424
456
|
req = Net::HTTP::Put.new(URI(@files_uri.to_s+"/#{id}/retain.json").path)
|
425
457
|
req.body = "token=#{@token}"
|
426
|
-
|
458
|
+
response=Net::HTTP.start(@files_uri.host) do |http|
|
427
459
|
http.request(req)
|
428
460
|
end
|
461
|
+
{:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)}
|
462
|
+
|
429
463
|
end
|
430
464
|
|
431
465
|
|
@@ -437,11 +471,11 @@ class Quickblox
|
|
437
471
|
normalized= normalize(params)
|
438
472
|
req = Net::HTTP::Post.new(URI(@pushtokens_uri.to_s+".json").path)
|
439
473
|
req.body = "#{normalized}"
|
440
|
-
|
474
|
+
response=Net::HTTP.start(@pushtokens_uri.host) do |http|
|
441
475
|
http.request(req)
|
442
476
|
end
|
443
|
-
JSON.parse(
|
444
|
-
|
477
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "201"
|
478
|
+
JSON.parse(response.body)
|
445
479
|
end
|
446
480
|
|
447
481
|
def create_subscription (channels, url=nil)
|
@@ -451,11 +485,11 @@ class Quickblox
|
|
451
485
|
normalized= normalize(hash)
|
452
486
|
req = Net::HTTP::Post.new(URI("http://"+@server.to_s+"/subscriptions.json").path)
|
453
487
|
req.body = "#{normalized}"
|
454
|
-
|
488
|
+
response=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
|
455
489
|
http.request(req)
|
456
490
|
end
|
457
|
-
JSON.parse(
|
458
|
-
|
491
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "201"
|
492
|
+
JSON.parse(response.body)
|
459
493
|
end
|
460
494
|
|
461
495
|
def get_subscriptions
|
@@ -467,18 +501,13 @@ class Quickblox
|
|
467
501
|
def delete_subscription(id)
|
468
502
|
@token = get_token("user_device") unless @token_type=='user_device'
|
469
503
|
http = Net::HTTP.new(@server)
|
470
|
-
|
471
|
-
http.request(
|
504
|
+
delete = Net::HTTP::Delete.new("/subscriptions/#{id}/?token=#{@token}")
|
505
|
+
response=http.request(delete)
|
506
|
+
{:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)}
|
472
507
|
end
|
473
508
|
|
474
509
|
def create_event(params, message)
|
475
510
|
@token = get_token("user_device") unless @token_type=='user_device'
|
476
|
-
# message = hash
|
477
|
-
# message["platform"] could be mpns, ios or android
|
478
|
-
# if message[type] mpns
|
479
|
-
# EXAMPLE
|
480
|
-
# create_event({:event=>{:notification_type=>"push",:push_type=>"mpns",:user=>{:ids=>"616"}, :environment=>"production"}},{:type=>"toast",:body=>"message body",:head=>"message head",:return_path=>"/",:class=>2})
|
481
|
-
|
482
511
|
if params[:event][:notification_type]=="push"
|
483
512
|
if params[:event][:push_type]=="mpns"
|
484
513
|
if message[:type]=="toast"
|
@@ -491,11 +520,9 @@ class Quickblox
|
|
491
520
|
"</wp:Toast>"+
|
492
521
|
"</wp:Notification>"
|
493
522
|
|
494
|
-
to_send=CGI::escape("mpns="+Base64.strict_encode64(mpns_body)+"&headers="+Base64.strict_encode64("Content-Type,text/xml,X-NotificationClass,#{message[:class]},X-WindowsPhone-Target,toast"))
|
523
|
+
to_send=CGI::escape("mpns="+Base64.strict_encode64(mpns_body)+"&headers="+Base64.strict_encode64("Content-Type,text/xml,X-NotificationClass,#{message[:class]},X-WindowsPhone-Target,toast")) rescue nil
|
495
524
|
end
|
496
525
|
|
497
|
-
# create_event({:event=>{:notification_type=>"push",:push_type=>"mpns",:user=>{:ids=>"616"}, :environment=>"production"}},{:type=>"tile",:background_image=>"Red.jpg",:count=>4,:title=>"FR TITLE",:back_background_image=>"Green.jpg", :back_content=>"312312", :back_title=>"BACK TITLE",:class=>1})
|
498
|
-
|
499
526
|
if message[:type]=="tile"
|
500
527
|
mpns_body="<?xml version='1.0' encoding='utf-8'?>" +
|
501
528
|
"<wp:Notification xmlns:wp='WPNotification'>" +
|
@@ -508,52 +535,45 @@ class Quickblox
|
|
508
535
|
"<wp:BackContent>#{message[:back_content]}</wp:BackContent>"+
|
509
536
|
"</wp:Tile>" +
|
510
537
|
"</wp:Notification>"
|
511
|
-
|
512
|
-
to_send=CGI::escape("mpns="+Base64.strict_encode64(mpns_body)+"&headers="+Base64.strict_encode64("Content-Type,text/xml,X-NotificationClass,#{message[:class]},X-WindowsPhone-Target,token"))
|
538
|
+
to_send=CGI::escape("mpns="+Base64.strict_encode64(mpns_body)+"&headers="+Base64.strict_encode64("Content-Type,text/xml,X-NotificationClass,#{message[:class]},X-WindowsPhone-Target,token")) rescue nil
|
513
539
|
|
514
540
|
end
|
515
|
-
# create_event({:event=>{:notification_type=>"push",:push_type=>"mpns",:user=>{:ids=>"616"}, :environment=>"production"}},{:type=>"raw",:body=>"<root><value1>fsdfsdf</value1></root>",:class=>3})
|
516
541
|
|
517
542
|
if message[:type]=="raw"
|
518
|
-
mpns_body=
|
519
|
-
|
520
|
-
to_send=CGI::escape("mpns="+Base64.strict_encode64(mpns_body)+"&headers="+Base64.strict_encode64("Content-Type,text/xml,X-NotificationClass,#{message[:class]}"))
|
543
|
+
mpns_body=message[:body]
|
544
|
+
to_send=CGI::escape("mpns="+Base64.strict_encode64(mpns_body)+"&headers="+Base64.strict_encode64("Content-Type,text/xml,X-NotificationClass,#{message[:class]}")) rescue nil
|
521
545
|
|
522
546
|
end
|
523
547
|
end
|
524
548
|
|
525
|
-
# create_event({:event=>{:notification_type=>"push",:push_type=>"apns",:user=>{:ids=>"260"}, :environment=>"development"}},{:alert=>"lol",:badge_counter=>3, :sound=>"default"})
|
526
549
|
if params[:event][:push_type]=="apns"
|
527
|
-
to_send="payload=" + Base64.strict_encode64({:aps => {:alert => message[:alert], :badge => message[:badge_counter].to_i || 1, :sound => message[:sound] || 'default'}}.to_json).to_s
|
550
|
+
to_send="payload=" + Base64.strict_encode64({:aps => {:alert => message[:alert], :badge => message[:badge_counter].to_i || 1, :sound => message[:sound] || 'default'}}.to_json).to_s rescue nil
|
528
551
|
end
|
529
|
-
# create_event({:event=>{:notification_type=>"push",:push_type=>"c2dm",:user=>{:ids=>"260"}, :environment=>"development"}},{:body=>'message'})
|
530
552
|
if params[:event][:push_type]=="c2dm"
|
531
553
|
to_send="data.message=" + Base64.strict_encode64(message[:body]).to_s
|
532
554
|
end
|
533
|
-
# create_event({:event=>{:notification_type=>"push",:user=>{:ids=>"260"}, :environment=>"development"}},{:body=>'message body
|
534
555
|
if params[:event][:push_type]==nil
|
535
556
|
to_send=Base64.strict_encode64(message[:body]).to_s
|
536
557
|
end
|
537
558
|
end
|
538
559
|
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
if params[:event][:notification_type]=="http_request" || params[:event][:notification_type]== "email" || params[:event][:notification_type]=="pull"
|
544
|
-
to_send=Base64.strict_encode64(message[:body]).to_s
|
560
|
+
if params[:event][:notification_type]=="email"|| params[:event][:notification_type]=="pull"
|
561
|
+
to_send=CGI::escape("subject="+Base64.strict_encode64(message[:subject])+"&body="+Base64.strict_encode64(message[:body]).to_s) rescue nil
|
545
562
|
end
|
546
563
|
|
564
|
+
if params[:event][:notification_type]== "http_request"
|
565
|
+
to_send=CGI::escape("subject=#{message[:subject]}&body=#{message[:body]}&#{message[:params]}".to_s) rescue nil
|
566
|
+
end
|
547
567
|
|
548
568
|
params.merge! "token" => @token
|
549
569
|
normalized = normalize(params)
|
550
570
|
req = Net::HTTP::Post.new(URI("http://"+@server.to_s+"/events.json").path)
|
551
571
|
req.body = "#{normalized}&event[message]=#{to_send}"
|
552
|
-
|
572
|
+
response=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
|
553
573
|
http.request(req)
|
554
574
|
end
|
555
|
-
|
556
|
-
JSON.parse(
|
575
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "201"
|
576
|
+
JSON.parse(response.body)
|
557
577
|
end
|
558
578
|
|
559
579
|
def get_events(page=1, per_page=10)
|
@@ -562,87 +582,98 @@ class Quickblox
|
|
562
582
|
JSON.parse(file_info.body)
|
563
583
|
end
|
564
584
|
|
565
|
-
def edit_event(id, params, message)
|
585
|
+
def edit_event(id, params, message=nil)
|
566
586
|
@token = get_token("user_device") unless @token_type=='user_device'
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
|
580
|
-
|
587
|
+
event=get_event_by_id(id)
|
588
|
+
notification=event["notification_channel"]["name"]
|
589
|
+
params.merge! "token" => @token
|
590
|
+
normalized = normalize(params)
|
591
|
+
req = Net::HTTP::Put.new(URI("http://"+@server.to_s+"/events/#{id}.json").path)
|
592
|
+
if message
|
593
|
+
if notification=="mpns"
|
594
|
+
if message[:type]=="toast"
|
595
|
+
mpns_body="<?xml version='1.0' encoding='utf-8'?>"+
|
596
|
+
"<wp:Notification xmlns:wp='WPNotification'>"+
|
597
|
+
"<wp:Toast>"+
|
598
|
+
"<wp:Text1>#{message[:head]}</wp:Text1>"+
|
599
|
+
"<wp:Text2>#{message[:body]}</wp:Text2>"+
|
600
|
+
"<wp:Param>#{message[:return_path]}</wp:Param>"+
|
601
|
+
"</wp:Toast>"+
|
602
|
+
"</wp:Notification>"
|
603
|
+
|
604
|
+
to_send=CGI::escape("mpns="+Base64.strict_encode64(mpns_body)+"&headers="+Base64.strict_encode64("Content-Type,text/xml,X-NotificationClass,#{message[:class]},X-WindowsPhone-Target,toast")) rescue nil
|
605
|
+
end
|
581
606
|
|
582
|
-
# edit_event(22,{:active=>true},{:push_type=>"mpns",:type=>"tile",:background_image=>"Red.jpg",:count=>4,:title=>"FR TITLE",:back_background_image=>"Green.jpg", :back_content=>"312312", :back_title=>"BACK TITLE",:class=>1})
|
583
|
-
|
584
|
-
if message[:type]=="tile"
|
585
|
-
mpns_body="<?xml version='1.0' encoding='utf-8'?>" +
|
586
|
-
"<wp:Notification xmlns:wp='WPNotification'>" +
|
587
|
-
"<wp:Tile>" +
|
588
|
-
"<wp:BackgroundImage>#{message[:background_image]}></wp:BackgroundImage>" +
|
589
|
-
"<wp:Count>#{message[:count]}</wp:Count>" +
|
590
|
-
"<wp:Title>#{message[:title]}</wp:Title>" +
|
591
|
-
"<wp:BackBackgroundImage>#{message[:back_background_image]}</wp:BackBackgroundImage>"+
|
592
|
-
"<wp:BackTitle>#{message[:back_title]}</wp:BackTitle>"+
|
593
|
-
"<wp:BackContent>#{message[:back_content]}</wp:BackContent>"+
|
594
|
-
"</wp:Tile>" +
|
595
|
-
"</wp:Notification>"
|
596
|
-
puts mpns_body
|
597
|
-
to_send=CGI::escape("mpns="+Base64.strict_encode64(mpns_body)+"&headers="+Base64.strict_encode64("Content-Type,text/xml,X-NotificationClass,#{message[:class]},X-WindowsPhone-Target,token"))
|
598
607
|
|
608
|
+
if message[:type]=="tile"
|
609
|
+
mpns_body="<?xml version='1.0' encoding='utf-8'?>" +
|
610
|
+
"<wp:Notification xmlns:wp='WPNotification'>" +
|
611
|
+
"<wp:Tile>" +
|
612
|
+
"<wp:BackgroundImage>#{message[:background_image]}></wp:BackgroundImage>" +
|
613
|
+
"<wp:Count>#{message[:count]}</wp:Count>" +
|
614
|
+
"<wp:Title>#{message[:title]}</wp:Title>" +
|
615
|
+
"<wp:BackBackgroundImage>#{message[:back_background_image]}</wp:BackBackgroundImage>"+
|
616
|
+
"<wp:BackTitle>#{message[:back_title]}</wp:BackTitle>"+
|
617
|
+
"<wp:BackContent>#{message[:back_content]}</wp:BackContent>"+
|
618
|
+
"</wp:Tile>" +
|
619
|
+
"</wp:Notification>"
|
620
|
+
|
621
|
+
to_send=CGI::escape("mpns="+Base64.strict_encode64(mpns_body)+"&headers="+Base64.strict_encode64("Content-Type,text/xml,X-NotificationClass,#{message[:class]},X-WindowsPhone-Target,token")) rescue nil
|
622
|
+
|
623
|
+
end
|
624
|
+
|
625
|
+
if message[:type]=="raw"
|
626
|
+
mpns_body=message[:body]
|
627
|
+
to_send=CGI::escape("mpns="+Base64.strict_encode64(mpns_body)+"&headers="+Base64.strict_encode64("Content-Type,text/xml,X-NotificationClass,#{message[:class]}")) rescue nil
|
628
|
+
|
629
|
+
end
|
599
630
|
end
|
600
|
-
# create_event(22,{:active=>true},{:push_type=>"mpns",:type=>"raw",:body=>"<root><value1>fsdfsdf</value1></root>",:class=>3})
|
601
631
|
|
602
|
-
if message[:type]=="raw"
|
603
|
-
mpns_body="<?xml version='1.0' encoding='utf-8'?>" +
|
604
|
-
"#{message[:body]}"
|
605
|
-
to_send=CGI::escape("mpns="+Base64.strict_encode64(mpns_body)+"&headers="+Base64.strict_encode64("Content-Type,text/xml,X-NotificationClass,#{message[:class]}"))
|
606
632
|
|
633
|
+
if notification=="apns"
|
634
|
+
to_send="payload=" + Base64.strict_encode64({:aps => {:alert => message[:alert], :badge => message[:badge_counter].to_i || 1, :sound => message[:sound] || 'default'}}.to_json).to_s rescue nil
|
607
635
|
end
|
608
|
-
end
|
609
636
|
|
610
|
-
|
637
|
+
if notification=="c2dm"
|
638
|
+
to_send="data.message=" + Base64.strict_encode64(message[:body]).to_s
|
639
|
+
end
|
611
640
|
|
612
|
-
|
613
|
-
|
614
|
-
|
615
|
-
# edit_event(640,{:event=>{:active=>true}},{:push_type=>"apns", :alert=>"lolishe", :badge_counter=>3, :sound=>"default"})
|
616
|
-
if message[:push_type]=="c2dm"
|
617
|
-
to_send="data.message=" + Base64.strict_encode64(message[:body]).to_s
|
618
|
-
end
|
641
|
+
if notification=="http_request" || message[:type]== "email" || message[:type]=="pull"
|
642
|
+
to_send=Base64.strict_encode64(message[:body]).to_s
|
643
|
+
end
|
619
644
|
|
645
|
+
if notification=="email"|| notification=="pull"
|
646
|
+
to_send=CGI::escape("subject="+Base64.strict_encode64(message[:subject])+"&body="+Base64.strict_encode64(message[:body]).to_s) rescue nil
|
647
|
+
end
|
620
648
|
|
621
|
-
|
622
|
-
|
623
|
-
|
649
|
+
if notification=="http_request"
|
650
|
+
to_send=CGI::escape("subject=#{message[:subject]}&body=#{message[:body]}&#{message[:params]}".to_s) rescue nil
|
651
|
+
end
|
624
652
|
|
625
|
-
|
626
|
-
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
|
653
|
+
req.body = "#{normalized}&event[message]=#{to_send}"
|
654
|
+
else
|
655
|
+
req.body = "#{normalized}"
|
656
|
+
end
|
657
|
+
response=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
|
631
658
|
http.request(req)
|
632
659
|
end
|
660
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "201"
|
661
|
+
JSON.parse(response.body)
|
633
662
|
end
|
634
663
|
|
635
664
|
def delete_event(id)
|
636
665
|
@token = get_token("user_device") unless @token_type=='user_device'
|
637
666
|
http = Net::HTTP.new(@server)
|
638
667
|
delete_event = Net::HTTP::Delete.new("/events/#{id}?token=#{@token}")
|
639
|
-
http.request(delete_event)
|
668
|
+
response=http.request(delete_event)
|
669
|
+
{:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)}
|
640
670
|
end
|
641
671
|
|
642
672
|
def get_event_by_id(id)
|
643
673
|
@token = get_token("user_device") unless @token_type=='user_device'
|
644
|
-
|
645
|
-
JSON.parse(
|
674
|
+
response = Net::HTTP.get_response(URI("http://"+@server.to_s+"/events/#{id}.json?token=#{@token}"))
|
675
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
676
|
+
JSON.parse(response.body)
|
646
677
|
end
|
647
678
|
|
648
679
|
def get_pull_request_list
|
@@ -651,207 +682,245 @@ class Quickblox
|
|
651
682
|
JSON.parse(event.body)
|
652
683
|
end
|
653
684
|
|
654
|
-
|
685
|
+
# Ratings API requests
|
655
686
|
|
656
687
|
def create_gamemode(title)
|
657
688
|
@token = get_token("user") unless @token_type=='user'
|
689
|
+
return "ERROR: No user is logged in" unless @user_id
|
658
690
|
req = Net::HTTP::Post.new(URI(@gamemodes_uri.to_s+".json").path)
|
659
691
|
req.body = "token=#{@token}&gamemode[title]=#{title}"
|
660
|
-
|
692
|
+
response=Net::HTTP.start(@pushtokens_uri.host) do |http|
|
661
693
|
http.request(req)
|
662
694
|
end
|
663
|
-
JSON.parse(
|
664
|
-
|
695
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "201"
|
696
|
+
JSON.parse(response.body)
|
665
697
|
end
|
666
698
|
|
667
699
|
def update_gamemode(id, title)
|
668
700
|
@token = get_token("user") unless @token_type=='user'
|
701
|
+
return "ERROR: No user is logged in" unless @user_id
|
669
702
|
req = Net::HTTP::Put.new(URI(@gamemodes_uri.to_s+"/#{id}.json").path)
|
670
|
-
req.body = "token=#{@token}&gamemode[title]=#{title}"
|
671
|
-
|
703
|
+
req.body = "token=#{@token}&gamemode[title] =#{title}"
|
704
|
+
response=Net::HTTP.start(@pushtokens_uri.host) do |http|
|
672
705
|
http.request(req)
|
673
706
|
end
|
674
|
-
JSON.parse(
|
675
|
-
|
707
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
708
|
+
JSON.parse(response.body)["game_mode"]
|
676
709
|
end
|
677
710
|
|
678
711
|
def get_gamemode_by_id(id)
|
679
712
|
@token = get_token("user") unless @token_type=='user'
|
680
|
-
|
681
|
-
|
713
|
+
return "ERROR: No user is logged in" unless @user_id
|
714
|
+
response = Net::HTTP.get_response(URI(@gamemodes_uri.to_s+"/#{id}.json?token=#{@token}"))
|
715
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
716
|
+
JSON.parse(response.body)
|
682
717
|
end
|
683
718
|
|
684
719
|
def get_gamemodes
|
685
720
|
@token = get_token("user") unless @token_type=='user'
|
686
|
-
|
687
|
-
|
721
|
+
return "ERROR: No user is logged in" unless @user_id
|
722
|
+
response = Net::HTTP.get_response(URI("http://"+@server.to_s+"/application/gamemodes.json?token=#{@token}"))
|
723
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
724
|
+
JSON.parse(response.body)
|
688
725
|
end
|
689
726
|
|
690
|
-
def
|
727
|
+
def delete_gamemode(id)
|
691
728
|
@token = get_token("user") unless @token_type=='user'
|
729
|
+
return "ERROR: No user is logged in" unless @user_id
|
692
730
|
http = Net::HTTP.new(@server)
|
693
731
|
delete = Net::HTTP::Delete.new("/gamemodes/#{id}?token=#{@token}")
|
694
|
-
http.request(delete)
|
732
|
+
response = http.request(delete)
|
733
|
+
{:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)}
|
695
734
|
end
|
696
735
|
|
697
736
|
def create_score(params)
|
698
737
|
@token = get_token("user") unless @token_type=='user'
|
738
|
+
return "ERROR: No user is logged in" unless @user_id
|
699
739
|
req = Net::HTTP::Post.new(URI("http://"+@server.to_s+"/scores.json").path)
|
700
740
|
params.merge! "token" => @token
|
701
741
|
normalized = normalize(params)
|
702
742
|
req.body = "#{normalized}"
|
703
|
-
|
743
|
+
response=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
|
704
744
|
http.request(req)
|
705
745
|
end
|
706
|
-
JSON.parse(
|
746
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "201"
|
747
|
+
JSON.parse(response.body)
|
707
748
|
|
708
749
|
end
|
709
750
|
|
710
|
-
# update_score(id,{:score=>{:game_mode_id=>"255",:value=>23})
|
711
751
|
def update_score(id, params)
|
712
752
|
@token = get_token("user") unless @token_type=='user'
|
753
|
+
return "ERROR: No user is logged in" unless @user_id
|
713
754
|
req = Net::HTTP::Put.new(URI("http://"+@server.to_s+"/scores/#{id}.json").path)
|
714
755
|
params.merge! "token" => @token
|
715
756
|
normalized = normalize(params)
|
716
757
|
req.body = "#{normalized}"
|
717
|
-
|
758
|
+
response=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
|
718
759
|
http.request(req)
|
719
760
|
end
|
720
|
-
JSON.parse(
|
721
|
-
|
761
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
762
|
+
JSON.parse(response.body)
|
722
763
|
end
|
723
764
|
|
724
765
|
def get_score_by_id(id)
|
725
766
|
@token = get_token("user") unless @token_type=='user'
|
726
|
-
|
727
|
-
|
767
|
+
return "ERROR: No user is logged in" unless @user_id
|
768
|
+
response = Net::HTTP.get_response(URI("http://"+@server.to_s+"/scores/#{id}.json?token=#{@token}"))
|
769
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
770
|
+
JSON.parse(response.body)
|
728
771
|
end
|
729
772
|
|
730
773
|
def get_top_scores(id, count=10, page=1, per_page=10, filters=nil, sort=1)
|
731
774
|
@token = get_token("user") unless @token_type=='user'
|
732
|
-
|
733
|
-
JSON.parse(
|
775
|
+
response = Net::HTTP.get_response(URI(@gamemodes_uri.to_s+"/#{id}/top.#{count}.json?token=#{@token}&page=#{page}&per_page=#{per_page}&sort=#{sort}&filters=#{filters}"))
|
776
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
777
|
+
JSON.parse(response.body)
|
734
778
|
end
|
735
779
|
|
736
780
|
def get_scores_for_user(id, sort_by="value", filters=nil, sort=1)
|
737
781
|
@token = get_token("user") unless @token_type=='user'
|
738
|
-
|
739
|
-
|
782
|
+
return "ERROR: No user is logged in" unless @user_id
|
783
|
+
response = Net::HTTP.get_response(URI("http://"+@server.to_s+"/users/#{id}/scores.json?token=#{@token}&sort=#{sort}&filters=#{filters}&sort_by=#{sort_by}"))
|
784
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
785
|
+
JSON.parse(response.body)
|
740
786
|
end
|
741
787
|
|
742
788
|
def get_average_scores(id)
|
743
789
|
@token = get_token("user") unless @token_type=='user'
|
744
|
-
|
745
|
-
|
790
|
+
return "ERROR: No user is logged in" unless @user_id
|
791
|
+
response = Net::HTTP.get_response(URI(@gamemodes_uri.to_s+"/#{id}/average.json?token=#{@token}"))
|
792
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
793
|
+
JSON.parse(response.body)
|
746
794
|
end
|
747
795
|
|
748
|
-
def
|
796
|
+
def get_average_scores_by_app
|
749
797
|
@token = get_token("user") unless @token_type=='user'
|
750
|
-
|
751
|
-
|
798
|
+
return "ERROR: No user is logged in" unless @user_id
|
799
|
+
response = Net::HTTP.get_response(URI("http://"+@server.to_s+"/application/averages.json?token=#{@token}"))
|
800
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
801
|
+
JSON.parse(response.body)
|
752
802
|
end
|
753
803
|
|
754
804
|
def delete_score(id)
|
755
805
|
@token = get_token("user") unless @token_type=='user'
|
756
806
|
http = Net::HTTP.new(@server)
|
757
807
|
delete = Net::HTTP::Delete.new("/scores/#{id}?token=#{@token}")
|
758
|
-
http.request(delete)
|
808
|
+
response = http.request(delete)
|
809
|
+
{:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)}
|
759
810
|
end
|
760
811
|
|
761
812
|
def create_gamemodeparameter(params)
|
762
813
|
@token = get_token("user") unless @token_type=='user'
|
814
|
+
return "ERROR: No user is logged in" unless @user_id
|
763
815
|
req = Net::HTTP::Post.new(URI("http://"+@server.to_s+"/gamemodeparameters.json").path)
|
764
816
|
params.merge! "token" => @token
|
765
817
|
normalized = normalize(params)
|
766
818
|
req.body = "#{normalized}"
|
767
|
-
|
819
|
+
response=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
|
768
820
|
http.request(req)
|
769
821
|
end
|
770
|
-
JSON.parse(
|
771
|
-
|
822
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "201"
|
823
|
+
JSON.parse(response.body)
|
772
824
|
end
|
773
825
|
|
774
826
|
def update_gamemodeparameter(id, params)
|
775
827
|
@token = get_token("user") unless @token_type=='user'
|
828
|
+
return "ERROR: No user is logged in" unless @user_id
|
776
829
|
req = Net::HTTP::Put.new(URI("http://"+@server.to_s+"/gamemodeparameters/#{id}.json").path)
|
777
830
|
params.merge! "token" => @token
|
778
831
|
normalized = normalize(params)
|
779
832
|
req.body = "#{normalized}"
|
780
|
-
|
833
|
+
response=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
|
781
834
|
http.request(req)
|
782
835
|
end
|
783
|
-
JSON.parse(
|
784
|
-
|
836
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
837
|
+
JSON.parse(response.body)
|
785
838
|
end
|
786
839
|
|
787
840
|
def get_gamemodeparameter_by_id(id)
|
788
841
|
@token = get_token("user") unless @token_type=='user'
|
789
|
-
|
790
|
-
|
842
|
+
return "ERROR: No user is logged in" unless @user_id
|
843
|
+
response = Net::HTTP.get_response(URI("http://"+@server.to_s+"/gamemodeparameters/#{id}.json?token=#{@token}"))
|
844
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
845
|
+
JSON.parse(response.body)
|
791
846
|
end
|
792
847
|
|
793
848
|
def get_gamemodeparameter_by_gamemode_id(id)
|
794
849
|
@token = get_token("user") unless @token_type=='user'
|
795
|
-
|
796
|
-
|
850
|
+
return "ERROR: No user is logged in" unless @user_id
|
851
|
+
response = Net::HTTP.get_response(URI(@gamemodes_uri.to_s+"/#{id}/gamemodeparameters.json?token=#{@token}"))
|
852
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
853
|
+
JSON.parse(response.body)
|
797
854
|
end
|
798
855
|
|
799
856
|
def delete_gamemodeparameter(id)
|
800
857
|
@token = get_token("user") unless @token_type=='user'
|
858
|
+
return "ERROR: No user is logged in" unless @user_id
|
801
859
|
http = Net::HTTP.new(@server)
|
802
860
|
delete = Net::HTTP::Delete.new("/gamemodeparameters/#{id}?token=#{@token}")
|
803
|
-
http.request(delete)
|
861
|
+
response = http.request(delete)
|
862
|
+
{:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)}
|
804
863
|
end
|
805
864
|
|
806
865
|
def create_gamemodeparametervalue(params)
|
807
866
|
@token = get_token("user") unless @token_type=='user'
|
867
|
+
return "ERROR: No user is logged in" unless @user_id
|
808
868
|
req = Net::HTTP::Post.new(URI("http://"+@server.to_s+"/gamemodeparametervalues.json").path)
|
809
869
|
params.merge! "token" => @token
|
810
870
|
normalized = normalize(params)
|
811
871
|
req.body = "#{normalized}"
|
812
|
-
|
872
|
+
response=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
|
813
873
|
http.request(req)
|
814
874
|
end
|
815
|
-
JSON.parse(
|
816
|
-
|
875
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "201"
|
876
|
+
JSON.parse(response.body)
|
817
877
|
end
|
818
878
|
|
819
|
-
def
|
879
|
+
def update_gamemodeparametervalue(id, params)
|
820
880
|
@token = get_token("user") unless @token_type=='user'
|
881
|
+
return "ERROR: No user is logged in" unless @user_id
|
821
882
|
req = Net::HTTP::Put.new(URI("http://"+@server.to_s+"/gamemodeparametervalues/#{id}.json").path)
|
822
883
|
params.merge! "token" => @token
|
823
884
|
normalized = normalize(params)
|
824
885
|
req.body = "#{normalized}"
|
825
|
-
|
886
|
+
response=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
|
826
887
|
http.request(req)
|
827
888
|
end
|
828
|
-
JSON.parse(
|
829
|
-
|
889
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
890
|
+
JSON.parse(response.body)
|
830
891
|
end
|
831
892
|
|
832
893
|
def get_gamemodeparametervalue_by_id(id)
|
833
894
|
@token = get_token("user") unless @token_type=='user'
|
834
|
-
|
835
|
-
|
895
|
+
return "ERROR: No user is logged in" unless @user_id
|
896
|
+
response = Net::HTTP.get_response(URI("http://"+@server.to_s+"/gamemodeparametervalues/#{id}.json?token=#{@token}"))
|
897
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
898
|
+
JSON.parse(response.body)
|
836
899
|
end
|
837
900
|
|
838
901
|
def get_gamemodeparametervalue_by_score_id(id)
|
839
902
|
@token = get_token("user") unless @token_type=='user'
|
840
|
-
|
841
|
-
|
903
|
+
return "ERROR: No user is logged in" unless @user_id
|
904
|
+
response = Net::HTTP.get_response(URI("http://"+@server.to_s+"/scores/#{id}/gamemodeparametervalues.json?token=#{@token}"))
|
905
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
906
|
+
JSON.parse(response.body)
|
842
907
|
end
|
843
908
|
|
844
909
|
def get_api_gamemodeparametervalue_by_score_id(score_id, para_id)
|
845
910
|
@token = get_token("user") unless @token_type=='user'
|
846
|
-
|
847
|
-
|
911
|
+
return "ERROR: No user is logged in" unless @user_id
|
912
|
+
response = Net::HTTP.get_response(URI("http://"+@server.to_s+"/scores/#{score_id}/gamemodeparameters/#{para_id}/value.json?token=#{@token}"))
|
913
|
+
return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
|
914
|
+
JSON.parse(response.body)
|
848
915
|
end
|
849
916
|
|
850
917
|
def delete_gamemodeparametervalue(id)
|
851
918
|
@token = get_token("user") unless @token_type=='user'
|
919
|
+
return "ERROR: No user is logged in" unless @user_id
|
852
920
|
http = Net::HTTP.new(@server)
|
853
921
|
delete = Net::HTTP::Delete.new("/gamemodeparametervalues/#{id}?token=#{@token}")
|
854
|
-
http.request(delete)
|
922
|
+
response=http.request(delete)
|
923
|
+
{:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)}
|
855
924
|
end
|
856
925
|
|
857
926
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quickblox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: '0.2'
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-04-
|
12
|
+
date: 2012-04-16 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: QuickBlox.com api
|
15
15
|
email: andrey.kozhokaru@quickblox.com
|