Class: DaVinciDTRTestKit::MockPayer::FullEHRQuestionnairePackageEndpoint

Inherits:
Inferno::DSL::SuiteEndpoint
  • Object
show all
Includes:
DaVinciDTRTestKit::MockPayer
Defined in:
lib/davinci_dtr_test_kit/full_ehr/v2.0.1/full_ehr_questionnaire_package_endpoint.rb

Direct Known Subclasses

SMARTAppQuestionnairePackageEndpoint

Instance Method Summary collapse

Methods included from DaVinciDTRTestKit::MockPayer

#build_outcome_param, #find_questionnaire_response, #operation_outcome, #outcome_issue, #parse_fhir_object

Instance Method Details

#custom_responseObject



31
32
33
34
35
# File 'lib/davinci_dtr_test_kit/full_ehr/v2.0.1/full_ehr_questionnaire_package_endpoint.rb', line 31

def custom_response
  @custom_response ||= JSON.parse(result.input_json)
    .find { |input| input['name'].include?('custom_questionnaire_package_response') }
    &.dig('value')
end

#make_responseObject



22
23
24
25
26
27
28
29
# File 'lib/davinci_dtr_test_kit/full_ehr/v2.0.1/full_ehr_questionnaire_package_endpoint.rb', line 22

def make_response
  return if response.status == 401 # set in update_result (expired token handling there)

  response.status = 200
  response.format = 'application/fhir+json'
  response.headers['Access-Control-Allow-Origin'] = '*'
  response.body = custom_response.presence || build_questionnaire_package_response.to_json
end

#tagsObject



18
19
20
# File 'lib/davinci_dtr_test_kit/full_ehr/v2.0.1/full_ehr_questionnaire_package_endpoint.rb', line 18

def tags
  [test.config.options[:questionnaire_package_tag].presence || QUESTIONNAIRE_PACKAGE_TAG]
end

#test_run_identifierObject



10
11
12
13
14
15
16
# File 'lib/davinci_dtr_test_kit/full_ehr/v2.0.1/full_ehr_questionnaire_package_endpoint.rb', line 10

def test_run_identifier
  return request.params[:session_path] if request.params[:session_path].present?

  UDAPSecurityTestKit::MockUDAPServer.issued_token_to_client_id(
    request.headers['authorization']&.delete_prefix('Bearer ')
  )
end

#update_resultObject



37
38
39
40
41
42
43
44
# File 'lib/davinci_dtr_test_kit/full_ehr/v2.0.1/full_ehr_questionnaire_package_endpoint.rb', line 37

def update_result
  if UDAPSecurityTestKit::MockUDAPServer.request_has_expired_token?(request)
    UDAPSecurityTestKit::MockUDAPServer.update_response_for_expired_token(response, 'Bearer token')
    return
  end

  results_repo.update_result(result.id, 'pass') unless test.config.options[:accepts_multiple_requests]
end