class Colppy::Client

Constants

SERVICES_MANIFEST

Public Class Methods

new(auth_user, auth_pass, user, mode = "sandbox") click to toggle source
# File lib/colppy/client.rb, line 7
def initialize(auth_user, auth_pass, user, mode = "sandbox")
  ensure_user_valid!(user)

  @auth_user = auth_user
  @auth_pass = md5(auth_pass)
  @gateway = Core::Gateway.new(mode)
  if user
    @user = user
    sign_in
  end
end

Public Instance Methods

call(service, operation, params) click to toggle source
# File lib/colppy/client.rb, line 30
def call(service, operation, params)
  request_payload = request_base(service, operation).merge(parameters: params)

  @gateway.call(request_payload)[:response] if request_payload
end
inspect() click to toggle source
# File lib/colppy/client.rb, line 20
def inspect
  formatted_attrs = attr_inspect.map do |attr|
    "#{attr}: #{send(attr).inspect}"
  end
  "#<#{self.class.name} #{formatted_attrs.join(", ")}>"
end

Private Instance Methods

attr_inspect() click to toggle source
# File lib/colppy/client.rb, line 38
def attr_inspect
  [:session_key]
end
request_base(service, operation) click to toggle source
# File lib/colppy/client.rb, line 42
def request_base(service, operation)
  service = request_for!(service, operation)

  {
    auth: {
      usuario: @auth_user,
      password: @auth_pass
    },
    service: service
  }
end
request_for!(service, operation) click to toggle source
# File lib/colppy/client.rb, line 54
def request_for!(service, operation)
  unless SERVICES_MANIFEST.keys.include?(service)
    error = "There is no :#{service} service. The available ones are: " \
            "[:#{SERVICES_MANIFEST.keys.join(', :')}]"
    raise ServiceError.new(error)
  end
  service = SERVICES_MANIFEST[service]

  unless service.keys.include?(operation)
    error = "There is no operation called :#{operation}. The available operations are: "\
            "[:#{service.keys.join(', :')}]"
    raise ServiceError.new(error)
  end
  service[operation]
end