Class: HubriseApp::HubriseGateway
- Inherits:
-
Object
- Object
- HubriseApp::HubriseGateway
- Defined in:
- app/lib/hubrise_app/hubrise_gateway.rb
Constant Summary collapse
- HUBRISE_LOGIN_SCOPE =
"profile_with_email"
Instance Method Summary collapse
- #build_api_client(params = {}) ⇒ Object
- #build_api_client_from_app_instance(app_instance) ⇒ Object
- #build_api_client_from_authorization_code(authorization_code) ⇒ Object
- #build_app_authorization_url(hr_app_instance_id, redirect_uri) ⇒ Object
- #build_login_authorization_url(redirect_uri) ⇒ Object
-
#initialize(config = HubriseApp::CONFIG) ⇒ HubriseGateway
constructor
A new instance of HubriseGateway.
- #valid_hmac?(body, request_hmac) ⇒ Boolean
Constructor Details
#initialize(config = HubriseApp::CONFIG) ⇒ HubriseGateway
Returns a new instance of HubriseGateway.
6 7 8 |
# File 'app/lib/hubrise_app/hubrise_gateway.rb', line 6 def initialize(config = HubriseApp::CONFIG) @config = config end |
Instance Method Details
#build_api_client(params = {}) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'app/lib/hubrise_app/hubrise_gateway.rb', line 10 def build_api_client(params = {}) HubriseClient::V1.new( @config[:hubrise_client_id], @config[:hubrise_client_secret], params.merge( oauth_host: @config[:hubrise_oauth_host], oauth_port: @config[:hubrise_oauth_port], api_host: @config[:hubrise_api_host], api_port: @config[:hubrise_api_port], use_https: @config[:hubrise_use_https] ) ) end |
#build_api_client_from_app_instance(app_instance) ⇒ Object
24 25 26 27 28 29 30 31 32 33 |
# File 'app/lib/hubrise_app/hubrise_gateway.rb', line 24 def build_api_client_from_app_instance(app_instance) build_api_client( access_token: app_instance.access_token, app_instance_id: app_instance.hr_id, account_id: app_instance.hr_account_id, location_id: app_instance.hr_location_id, catalog_id: app_instance.hr_catalog_id, customer_list_id: app_instance.hr_customer_list_id ) end |
#build_api_client_from_authorization_code(authorization_code) ⇒ Object
35 36 37 38 39 |
# File 'app/lib/hubrise_app/hubrise_gateway.rb', line 35 def () build_api_client.tap do |api_client| api_client.() end end |
#build_app_authorization_url(hr_app_instance_id, redirect_uri) ⇒ Object
45 46 47 |
# File 'app/lib/hubrise_app/hubrise_gateway.rb', line 45 def (hr_app_instance_id, redirect_uri) build_api_client.(redirect_uri, nil, app_instance_id: hr_app_instance_id) end |
#build_login_authorization_url(redirect_uri) ⇒ Object
41 42 43 |
# File 'app/lib/hubrise_app/hubrise_gateway.rb', line 41 def (redirect_uri) build_api_client.(redirect_uri, HUBRISE_LOGIN_SCOPE) end |
#valid_hmac?(body, request_hmac) ⇒ Boolean
49 50 51 52 53 54 55 56 57 58 59 |
# File 'app/lib/hubrise_app/hubrise_gateway.rb', line 49 def valid_hmac?(body, request_hmac) calculated_hmac = OpenSSL::HMAC.hexdigest( OpenSSL::Digest.new("sha256"), @config[:hubrise_client_secret], body ) ActiveSupport::SecurityUtils.secure_compare( calculated_hmac, request_hmac || "" ) end |