Class: PCPServerSDK::RequestHeaderGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/PCP-server-Ruby-SDK/request_header_generator.rb

Constant Summary collapse

SERVER_META_INFO_HEADER_NAME =
'X-GCS-ServerMetaInfo'
CLIENT_META_INFO_HEADER_NAME =
'X-GCS-ClientMetaInfo'
AUTHORIZATION_HEADER_NAME =
'Authorization'
DATE_HEADER_NAME =
'Date'
CONTENT_TYPE_HEADER_NAME =
'Content-Type'
ALGORITHM =
'sha256'
WHITESPACE_REGEX =
/\r?\n[h]*/.freeze

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ RequestHeaderGenerator

Returns a new instance of RequestHeaderGenerator.



19
20
21
# File 'lib/PCP-server-Ruby-SDK/request_header_generator.rb', line 19

def initialize(config)
  @config = config
end

Instance Method Details

#generate_additional_request_headers(url, request) ⇒ Object

Generate additional request headers

Parameters:

  • url (String)
  • request (Hash)


26
27
28
29
30
31
32
33
34
35
# File 'lib/PCP-server-Ruby-SDK/request_header_generator.rb', line 26

def generate_additional_request_headers(url, request)
  headers = request[:headers] || {}

  headers[DATE_HEADER_NAME] ||= Time.now.utc.httpdate
  headers[SERVER_META_INFO_HEADER_NAME] ||= get_server_meta_info
  headers[CLIENT_META_INFO_HEADER_NAME] ||= get_client_meta_info
  headers[AUTHORIZATION_HEADER_NAME] ||= get_auth_header(url, request, headers)

  request.merge(headers: headers)
end