lib/ringcentral_sdk/platform/platform.rb in ringcentral_sdk-0.0.3 vs lib/ringcentral_sdk/platform/platform.rb in ringcentral_sdk-0.0.4

- old
+ new

@@ -20,11 +20,11 @@ def initialize(app_key='',app_secret='',server_url='https://platform.devtest.ringcentral.com') @app_key = app_key @app_secret = app_secret @server_url = server_url - @auth = RingCentralSdk::Platform::Auth.new + @_auth = RingCentralSdk::Platform::Auth.new @client = Faraday.new(:url => get_api_version_url()) do |conn| conn.request :json conn.request :url_encoded conn.response :json, :content_type => 'application/json' @@ -37,53 +37,70 @@ return @server_url + URL_PREFIX + '/' + API_VERSION end def authorize(username='',extension='',password='',remember=false) - response = auth_call({}, { + response = _auth_call({}, { :grant_type => 'password', :username => username, :extension => extension.is_a?(String) || extension.is_a?(Integer) ? extension : '', :password => password, :access_token_ttl => ACCESS_TOKEN_TTL, :refresh_token_ttl => remember ? REFRESH_TOKEN_TTL_REMEMBER : REFRESH_TOKEN_TTL }) - @auth.set_data( response.body ) - @auth.remember = remember + @_auth.set_data( response.body ) + @_auth.remember = remember if response.body.has_key?("access_token") && response.body["access_token"].is_a?(String) @client.headers['Authorization'] = 'Bearer ' + response.body["access_token"] end return response end + #def refresh() + #end + def get_api_key() - if @app_key.is_a?(String) && @app_secret.is_a?(String) - return Base64.encode64(@app_key + ":" + @app_secret).gsub(/[\s\r\n]/,"") - else - return '' - end + api_key = (@app_key.is_a?(String) && @app_secret.is_a?(String)) \ + ? Base64.encode64(@app_key + ":" + @app_secret).gsub(/[\s\r\n]/,"") : '' + return api_key end def get_auth_header() - if @auth.token_type.is_a?(String) && @auth.access_token.is_a?(String) - return @auth.token_type + ' ' + @auth.access_token + if @_auth.token_type.is_a?(String) && @_auth.access_token.is_a?(String) + return @_auth.token_type + ' ' + @_auth.access_token end return '' end - def auth_call(queryParams={},body={}) + def _auth_call(queryParams={},body={}) return @client.post do |req| req.url TOKEN_ENDPOINT req.headers['Authorization'] = 'Basic ' + get_api_key() req.headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8' if body.is_a?(Hash) && body.size > 0 req.body = body end end end - private :auth_call, :get_api_key, :get_api_version_url, :get_auth_header + def request(helper=nil) + unless helper.is_a?(RingCentralSdk::Helpers::Request) + raise 'Request is not a RingCentralSdk::Helpers::Request' + end + + if helper.method.downcase == 'post' + resp = @client.post do |req| + req.url helper.url + req.headers['Content-Type'] = helper.content_type if helper.content_type + req.body = helper.body if helper.body + end + return resp + end + return nil + end + + private :_auth_call, :get_api_key, :get_api_version_url, :get_auth_header end end