quickblox 0.1.1 → 0.2

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