class Myra::Request::HTTP

Public Class Methods

new(request) click to toggle source
# File lib/myra/request/http.rb, line 8
def initialize(request)
  @request = request
  @signature = Signature.new(
    secret: Myra.configuration.api_secret,
    date: request.date
  )
end

Public Instance Methods

response() click to toggle source
# File lib/myra/request/http.rb, line 16
def response
  @response ||= perform_request
end

Private Instance Methods

api_key() click to toggle source
# File lib/myra/request/http.rb, line 35
def api_key
  @request.api_key
end
auth_header() click to toggle source
# File lib/myra/request/http.rb, line 43
def auth_header
  "MYRA #{api_key}:#{auth_signature}"
end
auth_signature() click to toggle source
# File lib/myra/request/http.rb, line 39
def auth_signature
  @signature.for @request.signing_string
end
conn() click to toggle source
# File lib/myra/request/http.rb, line 31
def conn
  Faraday.new(url: @request.uri)
end
perform_request() click to toggle source
# File lib/myra/request/http.rb, line 22
def perform_request
  conn.send(@request.type) do |req|
    req.headers['Content-Type'] = @request.content_type
    req.headers['Date'] = @request.date.to_s
    req.headers['Authorization'] = auth_header
    req.body = @request.payload if @request.with_payload?
  end
end