Class: Inferno::DSL::FHIRClientBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/inferno/dsl/fhir_client_builder.rb

Overview

DSL for configuring FHIR clients

Examples:

input :url
input :fhir_credentials, type: :oauth_credentials
input :access_token

fhir_client do
  url :url
  headers 'My-Custom_header' => 'CUSTOM_HEADER_VALUE'
  oauth_credentials :fhir_credentials
end

fhir_client :with_bearer_token do
  url :url
  bearer_token :access_token
end
input :url
input :fhir_auth,
       type: :auth_info,
       options: {
          mode: 'access'
        }

fhir_client do
  url :url
  headers 'My-Custom_header' => 'CUSTOM_HEADER_VALUE'
  auth_info :fhir_auth
end

Instance Attribute Summary collapse

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name) ⇒ Object



121
122
123
124
125
# File 'lib/inferno/dsl/fhir_client_builder.rb', line 121

def method_missing(name, ...)
  return runnable.send(name, ...) if runnable.respond_to? name

  super
end

Instance Attribute Details

#runnableObject

Returns the value of attribute runnable.



38
39
40
# File 'lib/inferno/dsl/fhir_client_builder.rb', line 38

def runnable
  @runnable
end

Instance Method Details

#auth_info(auth_info = nil) ⇒ void

This method returns an undefined value.

Define auth info for a client. Auth info contains info needed for client to perform authorization and refresh access token when necessary

Parameters:



103
104
105
106
107
108
109
110
# File 'lib/inferno/dsl/fhir_client_builder.rb', line 103

def auth_info(auth_info = nil)
  @auth_info ||=
    if auth_info.is_a? Symbol
      runnable.send(auth_info)
    else
      auth_info
    end
end

#bearer_token(bearer_token = nil) ⇒ void

This method returns an undefined value.

Define the bearer token for a client. A string or symbol can be provided. A string is interpreted as a token. A symbol is interpreted as the name of an input to the Runnable.

Parameters:

  • bearer_token (String, Symbol) (defaults to: nil)


75
76
77
78
79
80
81
82
# File 'lib/inferno/dsl/fhir_client_builder.rb', line 75

def bearer_token(bearer_token = nil)
  @bearer_token ||=
    if bearer_token.is_a? Symbol
      runnable.send(bearer_token)
    else
      bearer_token
    end
end

#headers(headers = nil) ⇒ void

This method returns an undefined value.

Define custom headers for a client

Parameters:

  • headers (Hash) (defaults to: nil)


116
117
118
# File 'lib/inferno/dsl/fhir_client_builder.rb', line 116

def headers(headers = nil)
  @headers ||= headers
end

#oauth_credentials(oauth_credentials = nil) ⇒ void

This method returns an undefined value.

Define OAuth credentials for a client. These can allow a client to automatically refresh its access token when it expires.

Parameters:



89
90
91
92
93
94
95
96
# File 'lib/inferno/dsl/fhir_client_builder.rb', line 89

def oauth_credentials(oauth_credentials = nil)
  @oauth_credentials ||=
    if oauth_credentials.is_a? Symbol
      runnable.send(oauth_credentials)
    else
      oauth_credentials
    end
end

#url(url = nil) ⇒ void

This method returns an undefined value.

Define the base FHIR url for a client. A string or symbol can be provided. A string is interpreted as a url. A symbol is interpreted as the name of an input to the Runnable.

Parameters:

  • url (String, Symbol) (defaults to: nil)


60
61
62
63
64
65
66
67
# File 'lib/inferno/dsl/fhir_client_builder.rb', line 60

def url(url = nil)
  @url ||=
    if url.is_a? Symbol
      runnable.send(url)
    else
      url
    end&.chomp('/')
end