class Hamburglar::Gateways::Base
Hamburglar::Gateways::Base
is the main class that handles sending API requests to upstream providers. All other gateways should inherit from this class
Attributes
api_url[R]
The API URL
errors[R]
Errors returned when validating or submitting a request
params[R]
The parameters for the API request
response[R]
Response returned by an API call
Public Class Methods
new(params = {})
click to toggle source
# File lib/hamburglar/gateways/base.rb, line 21 def initialize(params = {}) @params = Hash[Hamburglar.config.credentials].merge(params) @errors = {} @response = {} end
required_params()
click to toggle source
Required parameters for an API call
# File lib/hamburglar/gateways/base.rb, line 33 def self.required_params @required_params || [] end
set_required_params(*params)
click to toggle source
Set required parameters for an API call
# File lib/hamburglar/gateways/base.rb, line 28 def self.set_required_params(*params) @required_params = params end
Public Instance Methods
submit()
click to toggle source
Subclasses need to implement this.
# File lib/hamburglar/gateways/base.rb, line 63 def submit raise NotImplementedError end
validate(revalidate = false)
click to toggle source
Validate presence of required_params
Returns false if a parameter isn't set
# File lib/hamburglar/gateways/base.rb, line 40 def validate(revalidate = false) @validated = false if revalidate unless @validated @errors[:missing_parameters] = [] self.class.required_params.each do |req| unless @params.has_key?(req) @errors[:missing_parameters] << req end end @validated = true end @errors[:missing_parameters].empty? end
Also aliased as: valid?
validate!()
click to toggle source
Validate presence of required_params
Raises Hamburglar::InvalidRequest
if validation fails
# File lib/hamburglar/gateways/base.rb, line 58 def validate! validate || raise(Hamburglar::InvalidRequest) end