Class: FaspClient::HttpRequestService

Inherits:
Object
  • Object
show all
Defined in:
app/services/fasp_client/http_request_service.rb

Instance Method Summary collapse

Constructor Details

#initialize(provider:) ⇒ HttpRequestService

Returns a new instance of HttpRequestService.



3
4
5
# File 'app/services/fasp_client/http_request_service.rb', line 3

def initialize(provider:)
  @provider = provider
end

Instance Method Details

#execute!(request) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'app/services/fasp_client/http_request_service.rb', line 7

def execute!(request)
  request["date"] = Time.now.utc.to_s
  request["Content-Digest"] = "sha-256=:"+Digest::SHA256.base64digest(request.body || "")+":"
  Linzer.sign!(
    request,
    key: @provider.local_linzer_key,
    components: %w[@method @target-uri content-digest],
    label: "sig1",
    params: {
      created: Time.now.utc.to_i
    }
  )
  response = nil
  Net::HTTP.start request.uri.hostname, request.uri.port, use_ssl: (request.uri.scheme == "https") do |http|
    response = http.request request
  end
  response
end

#verified?(request_or_response) ⇒ Boolean

Returns:

  • (Boolean)


26
27
28
29
30
# File 'app/services/fasp_client/http_request_service.rb', line 26

def verified?(request_or_response)
  Linzer.verify!(request_or_response, key: @provider.fasp_linzer_key)
rescue Linzer::Error
  false
end