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.
Files changed (2) hide show
  1. data/lib/quickblox.rb +339 -270
  2. metadata +2 -2
@@ -12,16 +12,16 @@ class Quickblox
12
12
 
13
13
  def configs
14
14
  config = YAML.load_file("config.yml")
15
- @application_id = config["config"]["application_id"]
16
- @auth_key = config["config"]["auth_key"]
17
- @auth_secret = config["config"]["auth_secret"]
18
- @user_owner_id = config["config"]["user_owner_id"]
19
- @server=config["config"]["server"]
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["config"]["user_login"]
22
- @user_password=config["config"]["user_password"]
23
- @device_platform= config["config"]["device_platform"]
24
- @device_udid= config["config"]["device_udid"]
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
- #Generates token depending on a request. Application token is generated by default.
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
- ask_token = Net::HTTP.start(@auth_uri.host, @auth_uri.port) do |http|
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(ask_token.body)["session"]["user_id"]
88
- @token=JSON.parse(ask_token.body)["session"]["token"]
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
- http.request(delete_token)
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
- user_list = Net::HTTP.get_response(URI(@users_uri.to_s+"#{at_uri}.json")+"?token=#{@token}#{at_param}")
104
- JSON.parse(user_list.body)["total_entries"]
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
- #Retrive users of the application with pagination
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
- page=1 unless page
126
- per_page=10 unless per_page
127
- user_list=Net::HTTP.get_response(URI(@users_uri.to_s+".json")+"?token=#{@token}&per_page=#{per_page}&page=#{page}")
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}&token=#{@token}"
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
- get_users_by_id = Net::HTTP.get_response(URI(@users_uri.to_s+"/#{id}.json")+"?token=#{@token}")
147
- JSON.parse(get_users_by_id.body)
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
- get_user_by_login= Net::HTTP.get_response(URI(@users_uri.to_s+"/by_login.json")+"?token=#{@token}&login=#{login}")
154
- JSON.parse(get_user_by_login.body)
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
- #Get users by full name with pagination
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
- user_list=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}")
180
- JSON.parse(user_list.body)["items"]
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
- get_user_by_fb= Net::HTTP.get_response(URI(@users_uri.to_s+"/by_facebook_id.json")+"?token=#{@token}&facebook_id=#{fbid}")
187
- JSON.parse(get_user_by_fb.body)
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
- get_user_by_tw= Net::HTTP.get_response(URI(@users_uri.to_s+"/by_twitter_id.json")+"?token=#{@token}&twitter_id=#{twid}")
194
- JSON.parse(get_user_by_tw.body)
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
- get_user_by_email= Net::HTTP.get_response(URI(@users_uri.to_s+"/by_email.json")+"?token=#{@token}&email=#{email}")
201
- JSON.parse(get_user_by_email.body)
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
- user_list=Net::HTTP.get_response(URI(@users_uri.to_s+"/by_tags.json")+"?token=#{@token}&per_page=#{per_page}&page=#{page}&tags=#{en_tags}")
227
- JSON.parse(user_list.body)["items"]
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
- #Update user by ID
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
- req = Net::HTTP::Put.new(URI(@users_uri.to_s+"/"+@user_id.to_s).path)
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
- get_user_by_ext_id= Net::HTTP.get_response(URI(@users_uri.to_s+"/external/#{external_id}.json")+"?token=#{@token}")
255
- JSON.parse(get_user_by_ext_id.body)
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
- get_geodata_by_id= Net::HTTP.get_response(URI(@geodata_uri.to_s+"/#{geodata_id}.json")+"?token=#{@token}")
290
- JSON.parse(get_geodata_by_id.body)["geo_data"]
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(geodata)
297
- get_geodata_by_id= Net::HTTP.get_response(URI(@geodata_uri.to_s+"/find.json")+"?#{normalized}&token=#{@token}")
298
- JSON.parse(get_geodata_by_id.body)
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
- places_list=Net::HTTP.get_response(URI(@places_uri.to_s+".json")+"?token=#{@token}&per_page=#{per_page}&page=#{page}")
322
- JSON.parse(places_list.body)["items"]
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
- places_list=Net::HTTP.get_response(URI(@places_uri.to_s+"/#{id}.json")+"?token=#{@token}")
328
-
329
- JSON.parse(places_list.body)
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(lace_params)
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
- create_file = Net::HTTP.start(URI(@files_uri.to_s+".json").host) do |http|
372
+ response = Net::HTTP.start(URI(@files_uri.to_s+".json").host) do |http|
361
373
  http.request(req)
362
374
  end
363
- link=JSON.parse(create_file.body)["blob"]["blob_object_access"]["params"]
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 => CGI.unescape(v[0])}) }
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
- res = Net::HTTP.start(uri.host, uri.port) do |http|
382
+ s3=Net::HTTP.start(uri.host, uri.port) do |http|
370
383
  http.request(req)
371
384
  end
372
- blobid = JSON.parse(create_file.body)["blob"]["id"]
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
- p=Net::HTTP.start(@places_uri.host) do |http|
390
+ complete=Net::HTTP.start(@places_uri.host) do |http|
377
391
  http.request(req)
378
392
  end
379
- JSON.parse(create_file.body)["blob"]
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
- file_info = Net::HTTP.get_response(URI(@files_uri.to_s+"/#{id}.json")+"?token=#{@token}")
385
- JSON.parse(file_info.body)["blob"]
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(id)
412
+ def get_file_link_by_uid(uid)
389
413
  @token = get_token unless @token
390
- file_info = Net::HTTP.get_response(URI(@files_uri.to_s+"/#{id}"+"?token=#{@token}"))
391
- CGI::unescapeHTML(file_info.body.gsub("<html><body>You are being <a href=\"", '').gsub("\">redirected</a>.</body></html>", ''))
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
- request=Net::HTTP.start(@files_uri.host) do |http|
423
+ response=Net::HTTP.start(@files_uri.host) do |http|
399
424
  http.request(req)
400
425
  end
401
- JSON.parse(request.body)["blob_object_access"]["params"]
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
- request=Net::HTTP.start(@files_uri.host) do |http|
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
- delete_geodata = Net::HTTP::Delete.new("/blobs/#{id}/?token=#{@token}")
419
- http.request(delete_geodata)
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
- request=Net::HTTP.start(@files_uri.host) do |http|
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
- create_token=Net::HTTP.start(@pushtokens_uri.host) do |http|
474
+ response=Net::HTTP.start(@pushtokens_uri.host) do |http|
441
475
  http.request(req)
442
476
  end
443
- JSON.parse(create_token.body)
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
- subscribe=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
488
+ response=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
455
489
  http.request(req)
456
490
  end
457
- JSON.parse(subscribe.body)
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
- delete_subscription = Net::HTTP::Delete.new("/subscriptions/#{id}/?token=#{@token}")
471
- http.request(delete_subscription)
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
- puts mpns_body
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="<?xml version='1.0' encoding='utf-8'?>" +
519
- "#{message[:body]}"
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
- # create_event({:event=>{:notification_type=>"email",:user=>{:ids=>"260"}, :environment=>"development"}},{:body=>'Message'})
540
- # create_event({:event=>{:notification_type=>"pull",:date=>"1333974896",:end_date=>"1334060796",:user=>{:ids=>"260"}, :environment=>"development"}},{:body=>'Message'})
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
- subscribe=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
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(subscribe.body)
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
- #edit_event (22,{:active=>true},{:push_type=>"mpns", :type=>"toast",:body=>"message body",:head=>"message head",:return_path=>"/",:class=>2})
568
- if message[:push_type]=="mpns"
569
- if message[:type]=="toast"
570
- mpns_body="<?xml version='1.0' encoding='utf-8'?>"+
571
- "<wp:Notification xmlns:wp='WPNotification'>"+
572
- "<wp:Toast>"+
573
- "<wp:Text1>#{message[:head]}</wp:Text1>"+
574
- "<wp:Text2>#{message[:body]}</wp:Text2>"+
575
- "<wp:Param>#{message[:return_path]}</wp:Param>"+
576
- "</wp:Toast>"+
577
- "</wp:Notification>"
578
-
579
- 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"))
580
- end
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
- # edit_event(640,{:event=>{:active=>true}},{:push_type=>"apns", :alert=>"lolishe", :badge_counter=>3, :sound=>"default"})
637
+ if notification=="c2dm"
638
+ to_send="data.message=" + Base64.strict_encode64(message[:body]).to_s
639
+ end
611
640
 
612
- if message[:push_type]=="apns"
613
- 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
614
- end
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
- if message[:type]=="http_request" || message[:type]== "email" || message[:type]=="pull"
622
- to_send=Base64.strict_encode64(message[:body]).to_s
623
- end
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
- req = Net::HTTP::Put.new(URI("http://"+@server.to_s+"/events/#{id}.json").path)
626
- params.merge! "token" => @token
627
- normalized = normalize(params)
628
- req.body = "#{normalized}&event[message]=#{to_send}"
629
- puts req.body
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
- event = Net::HTTP.get_response(URI("http://"+@server.to_s+"/events/#{id}.json?token=#{@token}"))
645
- JSON.parse(event.body)["event"]
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
- # Ratings API requests
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
- create=Net::HTTP.start(@pushtokens_uri.host) do |http|
692
+ response=Net::HTTP.start(@pushtokens_uri.host) do |http|
661
693
  http.request(req)
662
694
  end
663
- JSON.parse(create.body)
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
- create=Net::HTTP.start(@pushtokens_uri.host) do |http|
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(create.body)
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
- event = Net::HTTP.get_response(URI(@gamemodes_uri.to_s+"/#{id}.json?token=#{@token}"))
681
- JSON.parse(event.body)
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
- event = Net::HTTP.get_response(URI("http://"+@server.to_s+"/application/gamemodes.json?token=#{@token}"))
687
- JSON.parse(event.body)
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 delete_gamemomde(id)
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
- create=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
743
+ response=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
704
744
  http.request(req)
705
745
  end
706
- JSON.parse(create.body)
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
- update=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
758
+ response=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
718
759
  http.request(req)
719
760
  end
720
- JSON.parse(update.body)
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
- event = Net::HTTP.get_response(URI("http://"+@server.to_s+"/scores/#{id}.json?token=#{@token}"))
727
- JSON.parse(event.body)
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
- event = 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}"))
733
- JSON.parse(event.body)
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
- event = Net::HTTP.get_response(URI("http://"+@server.to_s+"/users/#{id}/scores.json?token=#{@token}&sort=#{sort}&filters=#{filters}&sort_by=#{sort_by}"))
739
- JSON.parse(event.body)
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
- event = Net::HTTP.get_response(URI(@gamemodes_uri.to_s+"/#{id}/average.json?token=#{@token}"))
745
- JSON.parse(event.body)
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 get_average_scores_by_application
796
+ def get_average_scores_by_app
749
797
  @token = get_token("user") unless @token_type=='user'
750
- event = Net::HTTP.get_response(URI("http://"+@server.to_s+"/application/averages.json?token=#{@token}"))
751
- JSON.parse(event.body)
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
- create=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
819
+ response=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
768
820
  http.request(req)
769
821
  end
770
- JSON.parse(create.body)
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
- update=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
833
+ response=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
781
834
  http.request(req)
782
835
  end
783
- JSON.parse(update.body)
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
- event = Net::HTTP.get_response(URI("http://"+@server.to_s+"/gamemodeparameters/#{id}.json?token=#{@token}"))
790
- JSON.parse(event.body)
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
- event = Net::HTTP.get_response(URI(@gamemodes_uri.to_s+"/#{id}/gamemodeparameters.json?token=#{@token}"))
796
- JSON.parse(event.body)
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
- create=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
872
+ response=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
813
873
  http.request(req)
814
874
  end
815
- JSON.parse(create.body)
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 update_gamemodeparametervalues(id, params)
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
- update=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
886
+ response=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
826
887
  http.request(req)
827
888
  end
828
- JSON.parse(update.body)
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
- event = Net::HTTP.get_response(URI("http://"+@server.to_s+"/gamemodeparametervalues/#{id}.json?token=#{@token}"))
835
- JSON.parse(event.body)
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
- event = Net::HTTP.get_response(URI("http://"+@server.to_s+"/scores/#{id}/gamemodeparametervalues.json?token=#{@token}"))
841
- JSON.parse(event.body)
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
- event = Net::HTTP.get_response(URI("http://"+@server.to_s+"/scores/#{score_id}/gamemodeparameter/#{para_id}/values.json?token=#{@token}"))
847
- JSON.parse(event.body)
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.1.1
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-10 00:00:00.000000000 Z
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