class MyobAdvanced::Api::Client
Attributes
client[R]
Public Class Methods
new(options)
click to toggle source
# File lib/myob_advanced/api/client.rb, line 11 def initialize(options) @redirect_uri = options[:redirect_uri] @consumer = options[:consumer] @access_user = options[:access_user] @access_token = options[:access_token] @refresh_token = options[:refresh_token] @site_url = options[:site_url] @default_version = options[:default_version] # Default web servive enpoint version @site_url = @site_url.to_s.gsub(/\/*$/, '') # Init model methods MyobAdvanced::Api::Model::Base.subclasses.each {|c| model(c.name.split("::").last)} @client = OAuth2::Client.new(@consumer[:key], @consumer[:secret], { :site => @site_url, :authorize_url => '/identity/connect/authorize', :token_url => '/identity/connect/token', }) end
Public Instance Methods
connection()
click to toggle source
# File lib/myob_advanced/api/client.rb, line 79 def connection @auth_connection ||= OAuth2::AccessToken.new(@client, @access_token) end
default_api_url()
click to toggle source
# File lib/myob_advanced/api/client.rb, line 31 def default_api_url "#{@site_url}/entity/Default/#{@default_version}" end
enpoints()
click to toggle source
# File lib/myob_advanced/api/client.rb, line 83 def enpoints url = "#{@site_url}/entity" response = connection.get(url, { headers: headers }) JSON.parse(response.body) end
get_access_code_url(params = {})
click to toggle source
# File lib/myob_advanced/api/client.rb, line 39 def get_access_code_url(params = {}) scope = params[:scope] || 'api offline_access' @client.auth_code.authorize_url(params.merge(scope: scope, redirect_uri: @redirect_uri)) end
get_access_token(access_code)
click to toggle source
# File lib/myob_advanced/api/client.rb, line 44 def get_access_token(access_code) @token = @client.auth_code.get_token(access_code, redirect_uri: @redirect_uri) @access_token = @token.token @expires_at = @token.expires_at @refresh_token = @token.refresh_token @token end
get_access_token_password_grant_type()
click to toggle source
# File lib/myob_advanced/api/client.rb, line 52 def get_access_token_password_grant_type params = { scope: 'api offline_access' } @token = @client.password.get_token(@access_user[:username], @access_user[:password], params) @access_token = @token.token @expires_at = @token.expires_at @refresh_token = @token.refresh_token @token end
headers()
click to toggle source
# File lib/myob_advanced/api/client.rb, line 72 def headers { 'Accept' => 'application/json', 'Content-Type' => 'application/json' } end
refresh_access_token!()
click to toggle source
# File lib/myob_advanced/api/client.rb, line 61 def refresh_access_token! @token = OAuth2::AccessToken.new(@client, @access_token, { :refresh_token => @refresh_token }).refresh! @access_token = @token.token @expires_at = @token.expires_at @refresh_token = @token.refresh_token @token end
site_url()
click to toggle source
# File lib/myob_advanced/api/client.rb, line 35 def site_url @site_url end