class Buyatabwrapper::API
Constants
- CALLS
Attributes
config[RW]
result[RW]
Public Class Methods
new()
click to toggle source
# File lib/buyatabwrapper/api.rb, line 37 def initialize self.result = Result.new self.config = parse_config_file end
Public Instance Methods
send_request(type, params)
click to toggle source
# File lib/buyatabwrapper/api.rb, line 42 def send_request(type, params) return result unless config request = Net::HTTP::Post.new(CALLS[type][:url], initheader = {'Content-Type' => 'application/json'}) request.body = default_params(type).merge(params).to_json http = Net::HTTP.new(config.host, 443).tap do |http| http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE end response = http.request(request) response = JSON.parse(response.body)["d"] if response["Status"]["Success"] if type == :get_merchants self.result = response['Merchants'] else result.response = OpenStruct.new( id: response['BATOrderNumber'], url: response['Links'].first, card_number: response['CardNumbers'].first, pin_number: response['CardPins'].first ) result.successful! end else result.response = response["Status"]['Error']['Message'] end result end
Private Instance Methods
default_params(type)
click to toggle source
# File lib/buyatabwrapper/api.rb, line 76 def default_params(type) { username: config.user_name, password: config.password, apitoken: config.api_token }.merge(CALLS[type][:default_params]) end
parse_config_file()
click to toggle source
# File lib/buyatabwrapper/api.rb, line 84 def parse_config_file file = Rails.root.join("config").join("buyatabwrapper.yml") data = YAML.load(ERB.new(IO.read(file)).result)[Rails.env] rescue nil result.response = 'Provide configs in buyatabwrapper.yml file' unless data data ? OpenStruct.new(data) : data end