class LemonWay::Client
Constants
- DEFAULT_HEADERS
- DEFAULT_LANGUAGE
- DIRECTKIT_URL
- REQUIRED_CONFIGURATION
Attributes
company[R]
env[R]
login[R]
options[R]
password[R]
society_wallet_id[R]
Public Class Methods
new(options = {})
click to toggle source
# File lib/lemon_way/client.rb, line 28 def initialize(options = {}) if (options.keys & REQUIRED_CONFIGURATION).size != REQUIRED_CONFIGURATION.size raise MissingConfigurationError.new end %i[login password company society_wallet_id].each do |key| instance_variable_set("@#{key}".to_sym, options.delete(key)) end @env = options[:sandbox] ? 'dev' : 'prod' @options = options end
Public Instance Methods
send_request(lw_method, version, params = {})
click to toggle source
# File lib/lemon_way/client.rb, line 41 def send_request(lw_method, version, params = {}) response = perform_request(lw_method, version, params) ResponseAdapter.new(response) end
Private Instance Methods
directkit_url()
click to toggle source
# File lib/lemon_way/client.rb, line 55 def directkit_url DIRECTKIT_URL .sub('{company_name}', @company) .sub('{env}', @env) end
perform_request(lw_method, version, params)
click to toggle source
# File lib/lemon_way/client.rb, line 49 def perform_request(lw_method, version, params) self.class.post([directkit_url, lw_method].join('/'), headers: DEFAULT_HEADERS, body: { p: request_body(version, params) }.to_json) end
request_body(version, params)
click to toggle source
# File lib/lemon_way/client.rb, line 61 def request_body(version, params) { wlLogin: @login, wlPass: @password, language: @options[:language] || DEFAULT_LANGUAGE, version: version, walletIp: @options[:sandbox] ? '127.0.0.1' : RequestStore[:lemon_way][:ip], walletUa: @options[:sandbox] ? 'User-agent' : RequestStore[:lemon_way][:user_agent] }.merge(params) end