quickblox 0.1.1 → 0.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|