From 6abb0ac1633f5f19c1be1b43670b9b86e0b2a34e Mon Sep 17 00:00:00 2001 From: Tyler Long Date: Fri, 25 May 2018 11:15:05 +0800 Subject: [PATCH] faraday_middleware json --- Gemfile | 1 + Gemfile.lock | 5 ++++- README.md | 2 +- lib/ringcentral.rb | 6 ++++-- lib/subscription.rb | 4 ++-- ringcentral-sdk.gemspec | 3 ++- spec/fax_spec.rb | 2 +- spec/mms_spec.rb | 2 +- spec/ringcentral_spec.rb | 10 +++++----- 9 files changed, 21 insertions(+), 14 deletions(-) diff --git a/Gemfile b/Gemfile index a4e6999..42ae4c0 100644 --- a/Gemfile +++ b/Gemfile @@ -4,6 +4,7 @@ gem 'addressable' gem 'concurrent-ruby' gem 'pubnub' gem 'faraday' +gem 'faraday_middleware' group :test do gem 'dotenv' diff --git a/Gemfile.lock b/Gemfile.lock index 02bb5c1..7f6c0d6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -59,6 +59,8 @@ GEM dry-types (~> 0.12.0) faraday (0.14.0) multipart-post (>= 1.2, < 3) + faraday_middleware (0.12.2) + faraday (>= 0.7.4, < 1.0) hitimes (1.2.6) httpclient (2.8.3) inflecto (0.0.2) @@ -104,9 +106,10 @@ DEPENDENCIES coveralls dotenv faraday + faraday_middleware pubnub rspec simplecov BUNDLED WITH - 1.13.6 + 1.16.1 diff --git a/README.md b/README.md index 630e1a4..1a840fb 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ rc.authorize(username: ENV['RINGCENTRAL_USERNAME'], extension: ENV['RINGCENTRAL_ # get r = rc.get('/restapi/v1.0/account/~/extension/~') expect(r).not_to be_nil -expect('101').to eq(JSON.parse(r.body)['extensionNumber']) +expect('101').to eq(r.body['extensionNumber']) ``` diff --git a/lib/ringcentral.rb b/lib/ringcentral.rb index 6466964..7c8f916 100644 --- a/lib/ringcentral.rb +++ b/lib/ringcentral.rb @@ -3,6 +3,7 @@ require 'json' require 'concurrent' require 'faraday' +require 'faraday_middleware' require 'tmpdir' class RingCentral @@ -27,6 +28,7 @@ def initialize(client_id, client_secret, server) @faraday = Faraday.new(url: server) do |faraday| faraday.request :multipart faraday.request :url_encoded + faraday.response :json, :content_type => /\bjson$/ faraday.adapter Faraday.default_adapter end end @@ -60,7 +62,7 @@ def authorize(username: nil, extension: nil, password: nil, auth_code: nil, redi end self.token = nil r = self.post('/restapi/oauth/token', payload: payload) - self.token = JSON.parse(r.body) + self.token = r.body end def refresh @@ -71,7 +73,7 @@ def refresh } self.token = nil r = self.post('/restapi/oauth/token', payload: payload) - self.token = JSON.parse(r.body) + self.token = r.body end def revoke diff --git a/lib/subscription.rb b/lib/subscription.rb index 37ed530..9a86730 100644 --- a/lib/subscription.rb +++ b/lib/subscription.rb @@ -47,7 +47,7 @@ def subscription=(value) def subscribe r = @rc.post('/restapi/v1.0/subscription', payload: request_body) - self.subscription = JSON.parse(r.body) + self.subscription = r.body @pubnub = Pubnub.new(subscribe_key: @subscription['deliveryMode']['subscriberKey']) @pubnub.add_listener(name: 'default', callback: @callback) @pubnub.subscribe(channels: @subscription['deliveryMode']['address']) @@ -56,7 +56,7 @@ def subscribe def refresh return if @subscription == nil r = @rc.put("/restapi/v1.0/subscription/#{@subscription['id']}", payload: request_body) - self.subscription = JSON.parse(r.body) + self.subscription = r.body end def revoke diff --git a/ringcentral-sdk.gemspec b/ringcentral-sdk.gemspec index a39eac3..fb03571 100644 --- a/ringcentral-sdk.gemspec +++ b/ringcentral-sdk.gemspec @@ -1,6 +1,6 @@ Gem::Specification.new do |gem| gem.name = 'ringcentral-sdk' - gem.version = '0.8.2' + gem.version = '0.9.0' gem.authors = ['Tyler Liu'] gem.email = ['tyler.liu@ringcentral.com'] gem.description = 'Ruby SDK for you to access RingCentral platform API.' @@ -17,4 +17,5 @@ Gem::Specification.new do |gem| gem.add_dependency('concurrent-ruby', '~> 1.0', '>= 1.0.2') gem.add_dependency('pubnub', '~> 4.0', '>= 4.0.27') gem.add_dependency('faraday', '~> 0.10', '>= 0.10.0') + gem.add_dependency('faraday_middleware', '~> 0.12', '>= 0.12.2') end diff --git a/spec/fax_spec.rb b/spec/fax_spec.rb index 451e73f..bb66e81 100644 --- a/spec/fax_spec.rb +++ b/spec/fax_spec.rb @@ -15,7 +15,7 @@ ] ) expect(r).not_to be_nil - message = JSON.parse(r.body) + message = r.body expect('Fax').to eq(message['type']) end end diff --git a/spec/mms_spec.rb b/spec/mms_spec.rb index 3b5f705..60c18ab 100644 --- a/spec/mms_spec.rb +++ b/spec/mms_spec.rb @@ -19,7 +19,7 @@ ] ) expect(r).not_to be_nil - message = JSON.parse(r.body) + message = r.body expect('SMS').to eq(message['type']) end end diff --git a/spec/ringcentral_spec.rb b/spec/ringcentral_spec.rb index e0b8183..3407a4e 100644 --- a/spec/ringcentral_spec.rb +++ b/spec/ringcentral_spec.rb @@ -46,7 +46,7 @@ # get r = rc.get('/restapi/v1.0/account/~/extension/~') expect(r).not_to be_nil - expect('101').to eq(JSON.parse(r.body)['extensionNumber']) + expect('101').to eq(r.body['extensionNumber']) # post r = rc.post('/restapi/v1.0/account/~/extension/~/sms', payload: { @@ -55,18 +55,18 @@ text: 'Hello world' }) expect(r).not_to be_nil - message = JSON.parse(r.body) + message = r.body expect('SMS').to eq(message['type']) messageUrl = "/restapi/v1.0/account/~/extension/~/message-store/#{message['id']}" # put r = rc.put(messageUrl, payload: { readStatus: 'Unread' }) expect(r).not_to be_nil - message = JSON.parse(r.body) + message = r.body expect('Unread').to eq(message['readStatus']) r = rc.put(messageUrl, payload: { readStatus: 'Read' }) expect(r).not_to be_nil - message = JSON.parse(r.body) + message = r.body expect('Read').to eq(message['readStatus']) # todo: test patch @@ -76,7 +76,7 @@ expect(r).not_to be_nil r = rc.get(messageUrl) expect(r).not_to be_nil - message = JSON.parse(r.body) + message = r.body expect('Deleted').to eq(message['availability']) end end