module Inferno::DSL::RequestStorage
This module handles storing and retrieving requests/responses made by FHIR/HTTP clients
Public Class Methods
included(klass)
click to toggle source
# File lib/inferno/dsl/request_storage.rb, line 6 def self.included(klass) klass.extend ClassMethods end
Public Instance Methods
load_named_requests()
click to toggle source
@api private
# File lib/inferno/dsl/request_storage.rb, line 64 def load_named_requests requests_repo = Inferno::Repositories::Requests.new self.class.named_requests_used.map do |request_name| request = requests_repo.find_named_request(test_session_id, request_name) raise StandardError, "Unable to find '#{request_name}' request" if request.nil? requests << request end end
named_request(name)
click to toggle source
TODO: do a check in the test runner
# File lib/inferno/dsl/request_storage.rb, line 40 def named_request(name) requests.find { |request| request.name == name.to_sym } end
request()
click to toggle source
Returns the most recent FHIR/HTTP request
@return [Inferno::Entities::Request]
# File lib/inferno/dsl/request_storage.rb, line 20 def request requests.last end
requests()
click to toggle source
Returns the FHIR/HTTP requests that have been made in this `Test`
@return [Array<Inferno::Entities::Request>]
# File lib/inferno/dsl/request_storage.rb, line 13 def requests @requests ||= [] end
resource()
click to toggle source
Returns the FHIR resource from the response to the most recent FHIR request
@return [FHIR::Model, nil]
# File lib/inferno/dsl/request_storage.rb, line 35 def resource request&.resource end
response()
click to toggle source
Returns the response from the most recent FHIR/HTTP request
@return [Hash, nil]
# File lib/inferno/dsl/request_storage.rb, line 27 def response request&.response end
store_request(direction, name = nil, &block)
click to toggle source
@api private
# File lib/inferno/dsl/request_storage.rb, line 45 def store_request(direction, name = nil, &block) response = block.call request = if response.is_a? FHIR::ClientReply Entities::Request.from_fhir_client_reply( response, direction: direction, name: name, test_session_id: test_session_id ) else Entities::Request.from_http_response( response, direction: direction, name: name, test_session_id: test_session_id ) end requests << request request end