Class: Quickblox

Inherits:
Object
  • Object
show all
Defined in:
lib/quickblox.rb

Defined Under Namespace

Modules: HashConverter

Instance Method Summary collapse

Constructor Details

#initializeQuickblox

Returns a new instance of Quickblox.



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/quickblox.rb', line 29

def initialize
  configs
  @auth_uri=URI("http://"+@server.to_s+'/auth.json')
  @users_uri=URI("http://"+@server.to_s+'/users')
  @geodata_uri=URI("http://"+@server.to_s+'/geodata')
  @places_uri=URI("http://"+@server.to_s+'/places')
  @files_uri=URI("http://"+@server.to_s+'/blobs')
  @pushtokens_uri=URI("http://"+@server.to_s+'/push_tokens')
  @gamemodes_uri=URI("http://"+@server.to_s+'/gamemodes')
  @token=nil
  @token_type=nil
  @users_count = nil
  @user_id = nil

end

Instance Method Details

#configsObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/quickblox.rb', line 13

def configs
  config = YAML.load_file("config.yml")
  @application_id = config["quickblox"]["application_id"]
  @auth_key = config["quickblox"]["auth_key"]
  @auth_secret = config["quickblox"]["auth_secret"]
  @user_owner_id = config["quickblox"]["user_owner_id"]
  @server=config["quickblox"]["server"]
  #to remove - for debug
  @user_login=config["quickblox"]["user_login"]
  @user_password=config["quickblox"]["user_password"]
  @device_platform= config["quickblox"]["device_platform"]
  @device_udid= config["quickblox"]["device_udid"]

end

#create_event(params, message) ⇒ Object



509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
# File 'lib/quickblox.rb', line 509

def create_event(params, message)
  @token = get_token("user_device") unless @token_type=='user_device'
  if params[:event][:notification_type]=="push"
    if params[:event][:push_type]=="mpns"
      if message[:type]=="toast"
        mpns_body="<?xml version='1.0' encoding='utf-8'?>"+
            "<wp:Notification xmlns:wp='WPNotification'>"+
            "<wp:Toast>"+
            "<wp:Text1>#{message[:head]}</wp:Text1>"+
            "<wp:Text2>#{message[:body]}</wp:Text2>"+
            "<wp:Param>#{message[:return_path]}</wp:Param>"+
            "</wp:Toast>"+
            "</wp:Notification>"

        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
      end

      if message[:type]=="tile"
        mpns_body="<?xml version='1.0' encoding='utf-8'?>" +
            "<wp:Notification xmlns:wp='WPNotification'>" +
            "<wp:Tile>" +
            "<wp:BackgroundImage>#{message[:background_image]}></wp:BackgroundImage>" +
            "<wp:Count>#{message[:count]}</wp:Count>" +
            "<wp:Title>#{message[:title]}</wp:Title>" +
            "<wp:BackBackgroundImage>#{message[:back_background_image]}</wp:BackBackgroundImage>"+
            "<wp:BackTitle>#{message[:back_title]}</wp:BackTitle>"+
            "<wp:BackContent>#{message[:back_content]}</wp:BackContent>"+
            "</wp:Tile>" +
            "</wp:Notification>"
        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

      end

      if message[:type]=="raw"
        mpns_body=message[:body]
        to_send=CGI::escape("mpns="+Base64.strict_encode64(mpns_body)+"&headers="+Base64.strict_encode64("Content-Type,text/xml,X-NotificationClass,#{message[:class]}")) rescue nil

      end
    end

    if params[:event][:push_type]=="apns"
      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
    end
    if params[:event][:push_type]=="c2dm"
      to_send="data.message=" + Base64.strict_encode64(message[:body]).to_s
    end
    if params[:event][:push_type]==nil
      to_send=Base64.strict_encode64(message[:body]).to_s
    end
  end

  if params[:event][:notification_type]=="email"|| params[:event][:notification_type]=="pull"
    to_send=CGI::escape("subject="+Base64.strict_encode64(message[:subject])+"&body="+Base64.strict_encode64(message[:body]).to_s) rescue nil
  end

  if params[:event][:notification_type]== "http_request"
    to_send=CGI::escape("subject=#{message[:subject]}&body=#{message[:body]}&#{message[:params]}".to_s) rescue nil
  end

  params.merge! "token" => @token
  normalized = normalize(params)
  req = Net::HTTP::Post.new(URI("http://"+@server.to_s+"/events.json").path)
  req.body = "#{normalized}&event[message]=#{to_send}"
  response=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
    http.request(req)
  end
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "201"
  JSON.parse(response.body)
end

#create_file(filename, file_params) ⇒ Object



365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
# File 'lib/quickblox.rb', line 365

def create_file(filename, file_params)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  file_params.merge! "token" => @token, "blob[multipart]" => 0
  normalized = normalize(file_params)
  req = Net::HTTP::Post.new(URI(@files_uri.to_s+".json").path)
  req.body = "#{normalized}"
  response = Net::HTTP.start(URI(@files_uri.to_s+".json").host) do |http|
    http.request(req)
  end
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "201"
  link=JSON.parse(response.body)["blob"]["blob_object_access"]["params"]
  uri=URI(link)
  query = {}
  CGI.parse(uri.query).map { |k, v| query.merge!({k => v[0]}) }
  query.merge! "file" => File.read(filename)
  req = Net::HTTP::Post::Multipart.new uri.path, query
  s3=Net::HTTP.start(uri.host, uri.port) do |http|
    http.request(req)
  end
  return {:response_code => s3.code, :response_header => s3, :response_body => (JSON.parse(s3.body) rescue nil)} unless s3.code == "201"
  blobid = JSON.parse(response.body)["blob"]["id"]
  filesize = File.size(filename)
  req = Net::HTTP::Put.new(URI(@files_uri.to_s+"/#{blobid}/complete.json").path)
  req.body = "blob[size]=#{filesize}&token=#{@token}"
  complete=Net::HTTP.start(@places_uri.host) do |http|
    http.request(req)
  end
  return {:response_code => complete.code, :response_header => complete, :response_body => (JSON.parse(complete.body) rescue nil)} unless complete.code == "200"
  get_file_info_by_id(blobid)
end

#create_gamemode(title) ⇒ Object

Ratings API requests



687
688
689
690
691
692
693
694
695
696
697
# File 'lib/quickblox.rb', line 687

def create_gamemode(title)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  req = Net::HTTP::Post.new(URI(@gamemodes_uri.to_s+".json").path)
  req.body = "token=#{@token}&gamemode[title]=#{title}"
  response=Net::HTTP.start(@pushtokens_uri.host) do |http|
    http.request(req)
  end
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "201"
  JSON.parse(response.body)
end

#create_gamemodeparameter(params) ⇒ Object



812
813
814
815
816
817
818
819
820
821
822
823
824
# File 'lib/quickblox.rb', line 812

def create_gamemodeparameter(params)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  req = Net::HTTP::Post.new(URI("http://"+@server.to_s+"/gamemodeparameters.json").path)
  params.merge! "token" => @token
  normalized = normalize(params)
  req.body = "#{normalized}"
  response=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
    http.request(req)
  end
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "201"
  JSON.parse(response.body)
end

#create_gamemodeparametervalue(params) ⇒ Object



865
866
867
868
869
870
871
872
873
874
875
876
877
# File 'lib/quickblox.rb', line 865

def create_gamemodeparametervalue(params)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  req = Net::HTTP::Post.new(URI("http://"+@server.to_s+"/gamemodeparametervalues.json").path)
  params.merge! "token" => @token
  normalized = normalize(params)
  req.body = "#{normalized}"
  response=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
    http.request(req)
  end
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "201"
  JSON.parse(response.body)
end

#create_geodatum(geodata_params) ⇒ Object



263
264
265
266
267
268
269
270
271
272
273
274
275
# File 'lib/quickblox.rb', line 263

def create_geodatum(geodata_params)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  geodata_params.merge! "token" => @token
  normalized= normalize(geodata_params)
  req = Net::HTTP::Post.new(URI(@geodata_uri.to_s+".json").path)
  req.body = "#{normalized}"
  response=Net::HTTP.start(@geodata_uri.host) do |http|
    http.request(req)
  end
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#create_place(place_params) ⇒ Object



310
311
312
313
314
315
316
317
318
319
320
321
322
# File 'lib/quickblox.rb', line 310

def create_place(place_params)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  place_params.merge! "token" => @token
  normalized= normalize(place_params)
  req = Net::HTTP::Post.new(URI(@places_uri.to_s+".json").path)
  req.body = "#{normalized}"
  response=Net::HTTP.start(@places_uri.host) do |http|
    http.request(req)
  end
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "201"
  JSON.parse(response.body)
end

#create_push_token(params) ⇒ Object

Messages API request



468
469
470
471
472
473
474
475
476
477
478
479
# File 'lib/quickblox.rb', line 468

def create_push_token(params)
  @token = get_token("user_device") unless @token_type=='user_device'
  params.merge! "token" => @token
  normalized= normalize(params)
  req = Net::HTTP::Post.new(URI(@pushtokens_uri.to_s+".json").path)
  req.body = "#{normalized}"
  response=Net::HTTP.start(@pushtokens_uri.host) do |http|
    http.request(req)
  end
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "201"
  JSON.parse(response.body)
end

#create_score(params) ⇒ Object



736
737
738
739
740
741
742
743
744
745
746
747
748
749
# File 'lib/quickblox.rb', line 736

def create_score(params)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  req = Net::HTTP::Post.new(URI("http://"+@server.to_s+"/scores.json").path)
  params.merge! "token" => @token
  normalized = normalize(params)
  req.body = "#{normalized}"
  response=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
    http.request(req)
  end
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "201"
  JSON.parse(response.body)

end

#create_subscription(channels, url = nil) ⇒ Object



481
482
483
484
485
486
487
488
489
490
491
492
493
# File 'lib/quickblox.rb', line 481

def create_subscription (channels, url=nil)
  @token = get_token("user_device") unless @token_type=='user_device'
  hash={:notification_channels => "#{channels}", :url => "#{url}"}
  hash.merge! "token" => @token
  normalized= normalize(hash)
  req = Net::HTTP::Post.new(URI("http://"+@server.to_s+"/subscriptions.json").path)
  req.body = "#{normalized}"
  response=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
    http.request(req)
  end
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "201"
  JSON.parse(response.body)
end

#delete_event(id) ⇒ Object



664
665
666
667
668
669
670
# File 'lib/quickblox.rb', line 664

def delete_event(id)
  @token = get_token("user_device") unless @token_type=='user_device'
  http = Net::HTTP.new(@server)
  delete_event = Net::HTTP::Delete.new("/events/#{id}?token=#{@token}")
  response=http.request(delete_event)
  {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)}
end

#delete_file(id) ⇒ Object



444
445
446
447
448
449
450
451
# File 'lib/quickblox.rb', line 444

def delete_file(id)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  http = Net::HTTP.new(@server)
  delete=Net::HTTP::Delete.new("/blobs/#{id}/?token=#{@token}")
  response=http.request(delete)
  {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)}
end

#delete_gamemode(id) ⇒ Object



727
728
729
730
731
732
733
734
# File 'lib/quickblox.rb', line 727

def delete_gamemode(id)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  http = Net::HTTP.new(@server)
  delete = Net::HTTP::Delete.new("/gamemodes/#{id}?token=#{@token}")
  response = http.request(delete)
  {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)}
end

#delete_gamemodeparameter(id) ⇒ Object



856
857
858
859
860
861
862
863
# File 'lib/quickblox.rb', line 856

def delete_gamemodeparameter(id)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  http = Net::HTTP.new(@server)
  delete = Net::HTTP::Delete.new("/gamemodeparameters/#{id}?token=#{@token}")
  response = http.request(delete)
  {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)}
end

#delete_gamemodeparametervalue(id) ⇒ Object



917
918
919
920
921
922
923
924
# File 'lib/quickblox.rb', line 917

def delete_gamemodeparametervalue(id)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  http = Net::HTTP.new(@server)
  delete = Net::HTTP::Delete.new("/gamemodeparametervalues/#{id}?token=#{@token}")
  response=http.request(delete)
  {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)}
end

#delete_geodata(days) ⇒ Object



292
293
294
295
296
297
298
299
# File 'lib/quickblox.rb', line 292

def delete_geodata(days)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  http = Net::HTTP.new(@server)
  delete_geodata = Net::HTTP::Delete.new("/geodata?token=#{@token}&days=#{days}")
  response=http.request(delete_geodata)
  {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)}
end

#delete_geodata_by_id(id) ⇒ Object



301
302
303
304
305
306
307
308
# File 'lib/quickblox.rb', line 301

def delete_geodata_by_id(id)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  http = Net::HTTP.new(@server)
  delete_geodata = Net::HTTP::Delete.new("/geodata/#{id}?token=#{@token}")
  response=http.request(delete_geodata)
  {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)}
end

#delete_place_by_id(id) ⇒ Object



352
353
354
355
356
357
358
359
# File 'lib/quickblox.rb', line 352

def delete_place_by_id(id)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  http = Net::HTTP.new(@server)
  delete_place = Net::HTTP::Delete.new("/places/#{id}?token=#{@token}")
  response=http.request(delete_place)
  {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)}
end

#delete_score(id) ⇒ Object



804
805
806
807
808
809
810
# File 'lib/quickblox.rb', line 804

def delete_score(id)
  @token = get_token("user") unless @token_type=='user'
  http = Net::HTTP.new(@server)
  delete = Net::HTTP::Delete.new("/scores/#{id}?token=#{@token}")
  response = http.request(delete)
  {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)}
end

#delete_subscription(id) ⇒ Object



501
502
503
504
505
506
507
# File 'lib/quickblox.rb', line 501

def delete_subscription(id)
  @token = get_token("user_device") unless @token_type=='user_device'
  http = Net::HTTP.new(@server)
  delete = Net::HTTP::Delete.new("/subscriptions/#{id}/?token=#{@token}")
  response=http.request(delete)
  {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)}
end

#delete_userObject



241
242
243
244
245
246
247
248
# File 'lib/quickblox.rb', line 241

def delete_user
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  http = Net::HTTP.new(@server)
  delete_user = Net::HTTP::Delete.new("/users/#{@user_id}?token=#{@token}")
  response=http.request(delete_user)
  {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)}
end

#destroy_tokenObject



94
95
96
97
98
99
100
# File 'lib/quickblox.rb', line 94

def destroy_token
  http = Net::HTTP.new(@server)
  delete_token = Net::HTTP::Delete.new("/auth_exit?token=#{@token}")
  @token=nil
  response=http.request(delete_token)
  {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)}
end

#device_platform=(value) ⇒ Object



61
62
63
# File 'lib/quickblox.rb', line 61

def device_platform=(value)
  @device_platform=value
end

#device_udidObject



65
66
67
# File 'lib/quickblox.rb', line 65

def device_udid
  @device_udid
end

#edit_event(id, params, message = nil) ⇒ Object



585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
# File 'lib/quickblox.rb', line 585

def edit_event(id, params, message=nil)
  @token = get_token("user_device") unless @token_type=='user_device'
  event=get_event_by_id(id)
  notification=event["notification_channel"]["name"]
  params.merge! "token" => @token
  normalized = normalize(params)
  req = Net::HTTP::Put.new(URI("http://"+@server.to_s+"/events/#{id}.json").path)
  if message
    if notification=="mpns"
      if message[:type]=="toast"
        mpns_body="<?xml version='1.0' encoding='utf-8'?>"+
            "<wp:Notification xmlns:wp='WPNotification'>"+
            "<wp:Toast>"+
            "<wp:Text1>#{message[:head]}</wp:Text1>"+
            "<wp:Text2>#{message[:body]}</wp:Text2>"+
            "<wp:Param>#{message[:return_path]}</wp:Param>"+
            "</wp:Toast>"+
            "</wp:Notification>"

        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
      end


      if message[:type]=="tile"
        mpns_body="<?xml version='1.0' encoding='utf-8'?>" +
            "<wp:Notification xmlns:wp='WPNotification'>" +
            "<wp:Tile>" +
            "<wp:BackgroundImage>#{message[:background_image]}></wp:BackgroundImage>" +
            "<wp:Count>#{message[:count]}</wp:Count>" +
            "<wp:Title>#{message[:title]}</wp:Title>" +
            "<wp:BackBackgroundImage>#{message[:back_background_image]}</wp:BackBackgroundImage>"+
            "<wp:BackTitle>#{message[:back_title]}</wp:BackTitle>"+
            "<wp:BackContent>#{message[:back_content]}</wp:BackContent>"+
            "</wp:Tile>" +
            "</wp:Notification>"

        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

      end

      if message[:type]=="raw"
        mpns_body=message[:body]
        to_send=CGI::escape("mpns="+Base64.strict_encode64(mpns_body)+"&headers="+Base64.strict_encode64("Content-Type,text/xml,X-NotificationClass,#{message[:class]}")) rescue nil

      end
    end


    if notification=="apns"
      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
    end

    if notification=="c2dm"
      to_send="data.message=" + Base64.strict_encode64(message[:body]).to_s
    end

    if notification=="http_request" || message[:type]== "email" || message[:type]=="pull"
      to_send=Base64.strict_encode64(message[:body]).to_s
    end

    if notification=="email"|| notification=="pull"
      to_send=CGI::escape("subject="+Base64.strict_encode64(message[:subject])+"&body="+Base64.strict_encode64(message[:body]).to_s) rescue nil
    end

    if notification=="http_request"
      to_send=CGI::escape("subject=#{message[:subject]}&body=#{message[:body]}&#{message[:params]}".to_s) rescue nil
    end

    req.body = "#{normalized}&event[message]=#{to_send}"
  else
    req.body = "#{normalized}"
  end
  response=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
    http.request(req)
  end
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "201"
  JSON.parse(response.body)
end

#edit_file_by_id(id, params) ⇒ Object



430
431
432
433
434
435
436
437
438
439
440
441
442
# File 'lib/quickblox.rb', line 430

def edit_file_by_id(id, params)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  req = Net::HTTP::Put.new(URI(@files_uri.to_s+"/#{id}.json").path)
  params.merge! "token" => @token
  normalized= normalize(params)
  req.body = "#{normalized}"
  response=Net::HTTP.start(@files_uri.host) do |http|
    http.request(req)
  end
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#get_all_users_by_fullname(fullname) ⇒ Object



158
159
160
161
162
163
164
165
166
167
168
169
170
171
# File 'lib/quickblox.rb', line 158

def get_all_users_by_fullname(fullname)
  en_fullname = URI::encode(fullname)
  @token = get_token unless @token
  get_fullname_count= get_users_count("/by_full_name", "&full_name=#{en_fullname}")
  requests=(get_fullname_count/100).to_i+1
  users=[]
  i=1
  while i <= requests do
    user_list=Net::HTTP.get_response(URI(@users_uri.to_s+"/by_full_name.json")+"?token=#{@token}&per_page=100&page=#{i}&full_name=#{en_fullname}")
    i+=1
    users.concat JSON.parse(user_list.body)["items"]
  end
  users
end

#get_all_users_by_tags(tags) ⇒ Object



202
203
204
205
206
207
208
209
210
211
212
213
214
215
# File 'lib/quickblox.rb', line 202

def get_all_users_by_tags(tags)
  en_tags = URI::encode(tags)
  @token = get_token unless @token
  get_tags_count= get_users_count("/by_tags", "&tags=#{en_tags}")
  requests=(get_tags_count/100).to_i+1
  users=[]
  i=1
  while i <= requests do
    user_list=Net::HTTP.get_response(URI(@users_uri.to_s+"/by_tags.json")+"?token=#{@token}&per_page=100&page=#{i}&tags=#{en_tags}")
    i+=1
    users.concat JSON.parse(user_list.body)["items"]
  end
  users
end

#get_all_users_listObject



110
111
112
113
114
115
116
117
118
119
120
121
122
# File 'lib/quickblox.rb', line 110

def get_all_users_list
  @token = get_token unless @token
  @users_count = get_users_count unless @users_count
  requests=(@users_count/100).to_i+1
  users=[]
  i=1
  while i <= requests do
    user_list=Net::HTTP.get_response(URI(@users_uri.to_s+".json")+"?token=#{@token}&per_page=100&page=#{i}")
    i+=1
    users.concat JSON.parse(user_list.body)["items"]
  end
  users
end

#get_api_gamemodeparametervalue_by_score_id(score_id, para_id) ⇒ Object



909
910
911
912
913
914
915
# File 'lib/quickblox.rb', line 909

def get_api_gamemodeparametervalue_by_score_id(score_id, para_id)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  response = Net::HTTP.get_response(URI("http://"+@server.to_s+"/scores/#{score_id}/gamemodeparameters/#{para_id}/value.json?token=#{@token}"))
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#get_average_scores(id) ⇒ Object



788
789
790
791
792
793
794
# File 'lib/quickblox.rb', line 788

def get_average_scores(id)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  response = Net::HTTP.get_response(URI(@gamemodes_uri.to_s+"/#{id}/average.json?token=#{@token}"))
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#get_average_scores_by_appObject



796
797
798
799
800
801
802
# File 'lib/quickblox.rb', line 796

def get_average_scores_by_app
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  response = Net::HTTP.get_response(URI("http://"+@server.to_s+"/application/averages.json?token=#{@token}"))
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#get_event_by_id(id) ⇒ Object



672
673
674
675
676
677
# File 'lib/quickblox.rb', line 672

def get_event_by_id(id)
  @token = get_token("user_device") unless @token_type=='user_device'
  response = Net::HTTP.get_response(URI("http://"+@server.to_s+"/events/#{id}.json?token=#{@token}"))
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#get_events(page = 1, per_page = 10) ⇒ Object



579
580
581
582
583
# File 'lib/quickblox.rb', line 579

def get_events(page=1, per_page=10)
  @token = get_token("user_device") unless @token_type=='user_device'
  file_info = Net::HTTP.get_response(URI("http://"+@server.to_s+"/events.json")+"?token=#{@token}&per_page=#{per_page}&page=#{page}")
  JSON.parse(file_info.body)
end

#get_external_id_by_user_id(id) ⇒ Object

Get external ID by user ID



258
259
260
# File 'lib/quickblox.rb', line 258

def get_external_id_by_user_id(id)
  get_user_by_id(id)["external_user_id"]
end

#get_file_info_by_id(id) ⇒ Object



397
398
399
400
401
402
# File 'lib/quickblox.rb', line 397

def get_file_info_by_id(id)
  @token = get_token unless @token
  response = Net::HTTP.get_response(URI(@files_uri.to_s+"/#{id}.json")+"?token=#{@token}")
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end


419
420
421
422
423
424
425
426
427
428
# File 'lib/quickblox.rb', line 419

def get_file_link_by_id(id)
  @token = get_token unless @token
  req = Net::HTTP::Post.new(URI(@files_uri.to_s+"/#{id}/getblobobjectbyid.json").path)
  req.body = "token=#{@token}"
  response=Net::HTTP.start(@files_uri.host) do |http|
    http.request(req)
  end
  {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)["blob_object_access"]["params"]
end


412
413
414
415
416
417
# File 'lib/quickblox.rb', line 412

def get_file_link_by_uid(uid)
  @token = get_token unless @token
  response = Net::HTTP.get_response(URI(@files_uri.to_s+"/#{uid}.json"+"?token=#{@token}"))
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "302"
  CGI::unescapeHTML(response.body.gsub("<html><body>You are being <a href=\"", '').gsub("\">redirected</a>.</body></html>", ''))
end

#get_files_list(page = 1, per_page = 10) ⇒ Object



404
405
406
407
408
409
410
# File 'lib/quickblox.rb', line 404

def get_files_list(page=1, per_page=10)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  response = Net::HTTP.get_response(URI(@files_uri.to_s+".json")+"?token=#{@token}&page=#{page}&per_page=#{per_page}")
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#get_gamemode_by_id(id) ⇒ Object



711
712
713
714
715
716
717
# File 'lib/quickblox.rb', line 711

def get_gamemode_by_id(id)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  response = Net::HTTP.get_response(URI(@gamemodes_uri.to_s+"/#{id}.json?token=#{@token}"))
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#get_gamemodeparameter_by_gamemode_id(id) ⇒ Object



848
849
850
851
852
853
854
# File 'lib/quickblox.rb', line 848

def get_gamemodeparameter_by_gamemode_id(id)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  response = Net::HTTP.get_response(URI(@gamemodes_uri.to_s+"/#{id}/gamemodeparameters.json?token=#{@token}"))
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#get_gamemodeparameter_by_id(id) ⇒ Object



840
841
842
843
844
845
846
# File 'lib/quickblox.rb', line 840

def get_gamemodeparameter_by_id(id)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  response = Net::HTTP.get_response(URI("http://"+@server.to_s+"/gamemodeparameters/#{id}.json?token=#{@token}"))
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#get_gamemodeparametervalue_by_id(id) ⇒ Object



893
894
895
896
897
898
899
# File 'lib/quickblox.rb', line 893

def get_gamemodeparametervalue_by_id(id)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  response = Net::HTTP.get_response(URI("http://"+@server.to_s+"/gamemodeparametervalues/#{id}.json?token=#{@token}"))
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#get_gamemodeparametervalue_by_score_id(id) ⇒ Object



901
902
903
904
905
906
907
# File 'lib/quickblox.rb', line 901

def get_gamemodeparametervalue_by_score_id(id)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  response = Net::HTTP.get_response(URI("http://"+@server.to_s+"/scores/#{id}/gamemodeparametervalues.json?token=#{@token}"))
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#get_gamemodesObject



719
720
721
722
723
724
725
# File 'lib/quickblox.rb', line 719

def get_gamemodes
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  response = Net::HTTP.get_response(URI("http://"+@server.to_s+"/application/gamemodes.json?token=#{@token}"))
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#get_geodata(params) ⇒ Object



284
285
286
287
288
289
290
# File 'lib/quickblox.rb', line 284

def get_geodata(params)
  @token = get_token unless @token
  normalized= normalize(params)
  response= Net::HTTP.get_response(URI(@geodata_uri.to_s+"/find.json")+"?#{normalized}&token=#{@token}")
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#get_geodata_by_id(geodata_id) ⇒ Object



277
278
279
280
281
282
# File 'lib/quickblox.rb', line 277

def get_geodata_by_id (geodata_id)
  @token = get_token unless @token
  response= Net::HTTP.get_response(URI(@geodata_uri.to_s+"/#{geodata_id}.json")+"?token=#{@token}")
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#get_places(page = 1, per_page = 10) ⇒ Object



324
325
326
327
328
329
# File 'lib/quickblox.rb', line 324

def get_places(page=1, per_page=10)
  @token = get_token unless @token
  response=Net::HTTP.get_response(URI(@places_uri.to_s+".json")+"?token=#{@token}&per_page=#{per_page}&page=#{page}")
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#get_places_by_id(id) ⇒ Object



331
332
333
334
335
336
# File 'lib/quickblox.rb', line 331

def get_places_by_id(id)
  @token = get_token unless @token
  response=Net::HTTP.get_response(URI(@places_uri.to_s+"/#{id}.json")+"?token=#{@token}")
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#get_pull_request_listObject



679
680
681
682
683
# File 'lib/quickblox.rb', line 679

def get_pull_request_list
  @token = get_token("user_device") unless @token_type=='user_device'
  event = Net::HTTP.get_response(URI("http://"+@server.to_s+"/pull_events.json?token=#{@token}"))
  JSON.parse(event.body)
end

#get_score_by_id(id) ⇒ Object



765
766
767
768
769
770
771
# File 'lib/quickblox.rb', line 765

def get_score_by_id(id)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  response = Net::HTTP.get_response(URI("http://"+@server.to_s+"/scores/#{id}.json?token=#{@token}"))
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#get_scores_for_user(id, sort_by = "value", filters = nil, sort = 1) ⇒ Object



780
781
782
783
784
785
786
# File 'lib/quickblox.rb', line 780

def get_scores_for_user(id, sort_by="value", filters=nil, sort=1)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  response = Net::HTTP.get_response(URI("http://"+@server.to_s+"/users/#{id}/scores.json?token=#{@token}&sort=#{sort}&filters=#{filters}&sort_by=#{sort_by}"))
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#get_subscriptionsObject



495
496
497
498
499
# File 'lib/quickblox.rb', line 495

def get_subscriptions
  @token = get_token("user_device") unless @token_type=='user_device'
  subscriptions = Net::HTTP.get_response(URI("http://"+@server.to_s+"/subscriptions.json?token=#{@token}"))
  JSON.parse(subscriptions.body)
end

#get_token(type = 'app') ⇒ Object



74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# File 'lib/quickblox.rb', line 74

def get_token(type = 'app')
  destroy_token if @token
  timestamp=Time.now.to_i
  nonce=rand(10000)
  hash = {:application_id => @application_id, :nonce => nonce, :auth_key => @auth_key, :timestamp => timestamp}
  hash.merge!({:user => {:login => @user_login, :password => @user_password, :owner_id => @user_owner_id}}) if type == 'user' || type == 'user_device'
  hash.merge!({:device => {:platform => @device_platform, :udid => @device_udid}}) if type == 'device' || type == 'user_device'
  normalized= normalize(hash)
  signature = HMAC::SHA1.hexdigest(@auth_secret, normalized)
  req = Net::HTTP::Post.new(@auth_uri.path)
  req.body = "#{normalized}&signature=#{signature}"
  response = Net::HTTP.start(@auth_uri.host, @auth_uri.port) do |http|
    http.request(req)
  end
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "201"
  @token_type=type
  @user_id=JSON.parse(response.body)["session"]["user_id"]
  @token=JSON.parse(response.body)["session"]["token"]
end

#get_top_scores(id, count = 10, page = 1, per_page = 10, filters = nil, sort = 1) ⇒ Object



773
774
775
776
777
778
# File 'lib/quickblox.rb', line 773

def get_top_scores(id, count=10, page=1, per_page=10, filters=nil, sort=1)
  @token = get_token("user") unless @token_type=='user'
  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}"))
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#get_user_by_email(email) ⇒ Object



195
196
197
198
199
200
# File 'lib/quickblox.rb', line 195

def get_user_by_email(email)
  @token = get_token unless @token
  response= Net::HTTP.get_response(URI(@users_uri.to_s+"/by_email.json")+"?token=#{@token}&email=#{email}")
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#get_user_by_external_id(external_id) ⇒ Object



250
251
252
253
254
255
# File 'lib/quickblox.rb', line 250

def get_user_by_external_id (external_id)
  @token = get_token unless @token
  response= Net::HTTP.get_response(URI(@users_uri.to_s+"/external/#{external_id}.json")+"?token=#{@token}")
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#get_user_by_facebook_id(fbid) ⇒ Object



181
182
183
184
185
186
# File 'lib/quickblox.rb', line 181

def get_user_by_facebook_id(fbid)
  @token = get_token unless @token
  response= Net::HTTP.get_response(URI(@users_uri.to_s+"/by_facebook_id.json")+"?token=#{@token}&facebook_id=#{fbid}")
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#get_user_by_id(id) ⇒ Object



144
145
146
147
148
149
# File 'lib/quickblox.rb', line 144

def get_user_by_id(id)
  @token = get_token unless @token
  response = Net::HTTP.get_response(URI(@users_uri.to_s+"/#{id}.json")+"?token=#{@token}")
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#get_user_by_login(login) ⇒ Object



151
152
153
154
155
156
# File 'lib/quickblox.rb', line 151

def ()
  @token = get_token unless @token
  response = Net::HTTP.get_response(URI(@users_uri.to_s+"/by_login.json")+"?token=#{@token}&login=#{}")
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#get_user_by_twitter_id(twid) ⇒ Object



188
189
190
191
192
193
# File 'lib/quickblox.rb', line 188

def get_user_by_twitter_id(twid)
  @token = get_token unless @token
  response= Net::HTTP.get_response(URI(@users_uri.to_s+"/by_twitter_id.json")+"?token=#{@token}&twitter_id=#{twid}")
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#get_user_idObject



69
70
71
72
# File 'lib/quickblox.rb', line 69

def get_user_id
  @token = get_token("user") unless @token_type=='user'
  @user_id
end

#get_users_by_fullname(fullname, page = 1, per_page = 10) ⇒ Object



173
174
175
176
177
178
179
# File 'lib/quickblox.rb', line 173

def get_users_by_fullname(fullname, page=1, per_page=10)
  en_fullname = URI::encode(fullname)
  @token = get_token unless @token
  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}")
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#get_users_by_tags(tags, page = nil, per_page = nil) ⇒ Object



217
218
219
220
221
222
223
224
225
# File 'lib/quickblox.rb', line 217

def get_users_by_tags(tags, page=nil, per_page=nil)
  en_tags = URI::encode(tags)
  @token = get_token unless @token
  page=1 unless page
  per_page=10 unless per_page
  response=Net::HTTP.get_response(URI(@users_uri.to_s+"/by_tags.json")+"?token=#{@token}&per_page=#{per_page}&page=#{page}&tags=#{en_tags}")
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#get_users_count(at_uri = nil, at_param = nil) ⇒ Object



103
104
105
106
107
108
# File 'lib/quickblox.rb', line 103

def get_users_count(at_uri=nil, at_param=nil)
  @token = get_token unless @token
  response = Net::HTTP.get_response(URI(@users_uri.to_s+"#{at_uri}.json")+"?token=#{@token}#{at_param}")
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)["total_entries"]
end

#get_users_list(page = 1, per_page = 10) ⇒ Object



124
125
126
127
128
129
# File 'lib/quickblox.rb', line 124

def get_users_list (page=1, per_page=10)
  @token = get_token unless @token
  response=Net::HTTP.get_response(URI(@users_uri.to_s+".json")+"?token=#{@token}&per_page=#{per_page}&page=#{page}")
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end


453
454
455
456
457
458
459
460
461
462
463
# File 'lib/quickblox.rb', line 453

def increase_file_links(id)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  req = Net::HTTP::Put.new(URI(@files_uri.to_s+"/#{id}/retain.json").path)
  req.body = "token=#{@token}"
  response=Net::HTTP.start(@files_uri.host) do |http|
    http.request(req)
  end
  {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)}

end

#normalize(var) ⇒ Object



953
954
955
956
957
958
959
960
961
962
# File 'lib/quickblox.rb', line 953

def normalize (var)
  var = HashConverter.encode(var)
  var.collect { |k, v|
    if v.is_a? Hash
      v.collect { |k1, v1| "#{k}[#{k1}]=#{v1}" }.sort.join('&')
    else
      "#{k}=#{v}"
    end
  }.sort.join('&')
end

#signup_user(user_params) ⇒ Object



131
132
133
134
135
136
137
138
139
140
141
142
# File 'lib/quickblox.rb', line 131

def (user_params)
  @token = get_token unless @token_type=='app'
  user_params.merge! "token" => @token, "user[owner_id]" => @user_owner_id
  normalized= normalize(user_params)
  req = Net::HTTP::Post.new(URI(@users_uri.to_s+".json").path)
  req.body = "#{normalized}"
  response=Net::HTTP.start(@users_uri.host) do |http|
    http.request(req)
  end
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#update_gamemode(id, title) ⇒ Object



699
700
701
702
703
704
705
706
707
708
709
# File 'lib/quickblox.rb', line 699

def update_gamemode(id, title)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  req = Net::HTTP::Put.new(URI(@gamemodes_uri.to_s+"/#{id}.json").path)
  req.body = "token=#{@token}&gamemode[title] =#{title}"
  response=Net::HTTP.start(@pushtokens_uri.host) do |http|
    http.request(req)
  end
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)["game_mode"]
end

#update_gamemodeparameter(id, params) ⇒ Object



826
827
828
829
830
831
832
833
834
835
836
837
838
# File 'lib/quickblox.rb', line 826

def update_gamemodeparameter(id, params)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  req = Net::HTTP::Put.new(URI("http://"+@server.to_s+"/gamemodeparameters/#{id}.json").path)
  params.merge! "token" => @token
  normalized = normalize(params)
  req.body = "#{normalized}"
  response=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
    http.request(req)
  end
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#update_gamemodeparametervalue(id, params) ⇒ Object



879
880
881
882
883
884
885
886
887
888
889
890
891
# File 'lib/quickblox.rb', line 879

def update_gamemodeparametervalue(id, params)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  req = Net::HTTP::Put.new(URI("http://"+@server.to_s+"/gamemodeparametervalues/#{id}.json").path)
  params.merge! "token" => @token
  normalized = normalize(params)
  req.body = "#{normalized}"
  response=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
    http.request(req)
  end
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#update_place_by_id(id, place_params) ⇒ Object



338
339
340
341
342
343
344
345
346
347
348
349
350
# File 'lib/quickblox.rb', line 338

def update_place_by_id(id, place_params)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  place_params.merge! "token" => @token
  normalized= normalize(place_params)
  req = Net::HTTP::Put.new(URI(@places_uri.to_s+"/#{id}.json").path)
  req.body = "#{normalized}"
  response=Net::HTTP.start(@places_uri.host) do |http|
    http.request(req)
  end
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#update_score(id, params) ⇒ Object



751
752
753
754
755
756
757
758
759
760
761
762
763
# File 'lib/quickblox.rb', line 751

def update_score(id, params)
  @token = get_token("user") unless @token_type=='user'
  return "ERROR: No user is logged in" unless @user_id
  req = Net::HTTP::Put.new(URI("http://"+@server.to_s+"/scores/#{id}.json").path)
  params.merge! "token" => @token
  normalized = normalize(params)
  req.body = "#{normalized}"
  response=Net::HTTP.start(URI("http://"+@server.to_s).host) do |http|
    http.request(req)
  end
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#update_user(user_params) ⇒ Object



227
228
229
230
231
232
233
234
235
236
237
238
239
# File 'lib/quickblox.rb', line 227

def update_user(user_params)
  @token = get_token("user") unless @token_type=='user'
  user_params.merge! "token" => @token
  normalized= normalize(user_params)
  return "ERROR: No user is logged in" unless @user_id
  req = Net::HTTP::Put.new(URI(@users_uri.to_s+"/"+@user_id.to_s+".json").path)
  req.body = "#{normalized}"
  response=Net::HTTP.start(@users_uri.host) do |http|
    http.request(req)
  end
  return {:response_code => response.code, :response_header => response, :response_body => (JSON.parse(response.body) rescue nil)} unless response.code == "200"
  JSON.parse(response.body)
end

#user_loginObject



49
50
51
# File 'lib/quickblox.rb', line 49

def 
  @user_login
end

#user_login=(value) ⇒ Object



45
46
47
# File 'lib/quickblox.rb', line 45

def user_login=(value)
  @user_login=value
end

#user_passwordObject



57
58
59
# File 'lib/quickblox.rb', line 57

def user_password
  @user_password
end

#user_password=(value) ⇒ Object



53
54
55
# File 'lib/quickblox.rb', line 53

def user_password=(value)
  @user_password=value
end