class Ofsys::Request::Base

Constants

ENDPOINT_BASE

Public Class Methods

new(config = Ofsys.config) click to toggle source
# File lib/ofsys/request/base.rb, line 12
def initialize(config = Ofsys.config)
  @id_key = config.id_key
  @key = config.key
  @id_project = config.id_project
end
suppress_id_project() click to toggle source
# File lib/ofsys/request/base.rb, line 8
def self.suppress_id_project
  @suppress_id_project = true
end

Public Instance Methods

perform(params = {}) click to toggle source
# File lib/ofsys/request/base.rb, line 18
def perform(params = {})
  request.body = body(params)
  result_body = http.request(request).body
  decode_result(result_body)
end

Private Instance Methods

body(source_params) click to toggle source
# File lib/ofsys/request/base.rb, line 46
def body(source_params)
  params = merge_auth(source_params)
  params.merge!(idProject: @id_project) unless suppress_id_project?
  to_json(params)
end
build_http() click to toggle source
# File lib/ofsys/request/base.rb, line 40
def build_http
  Net::HTTP.new(uri.host, uri.port).tap do |http|
    http.use_ssl = true
  end
end
decode_result(body) click to toggle source
# File lib/ofsys/request/base.rb, line 73
def decode_result(body)
  result = to_hash(body)
  fail FailedError.new(body) unless result['Success']
  result
end
http() click to toggle source
# File lib/ofsys/request/base.rb, line 36
def http
  @http ||= build_http
end
merge_auth(source_params) click to toggle source
# File lib/ofsys/request/base.rb, line 60
def merge_auth(source_params)
  source_params.merge!(
    AuthKey: {
      Key: @key,
      idKey: @id_key
    }
  )
end
request() click to toggle source
# File lib/ofsys/request/base.rb, line 28
def request
  @request ||= Net::HTTP::Post.new(uri.request_uri)
end
suppress_id_project?() click to toggle source
# File lib/ofsys/request/base.rb, line 69
def suppress_id_project?
  self.class.instance_variable_get(:@suppress_id_project) || false
end
to_hash(text) click to toggle source
# File lib/ofsys/request/base.rb, line 56
def to_hash(text)
  ::Yajl::Parser.parse(text)
end
to_json(hash) click to toggle source
# File lib/ofsys/request/base.rb, line 52
def to_json(hash)
  ::Yajl::Encoder.encode(hash)
end
uri() click to toggle source
# File lib/ofsys/request/base.rb, line 32
def uri
  @uri ||= URI.parse(self.class::ENDPOINT)
end