Class: Rawscsi::RequestSignature

Inherits:
Object
  • Object
show all
Defined in:
lib/rawscsi/request_signature.rb

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ RequestSignature

Returns a new instance of RequestSignature.



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/rawscsi/request_signature.rb', line 3

def initialize(options)
  required_attributes_missing = []
  require_attribute = lambda do |name|
    return options[name] if options.has_key?(name) 
    required_attributes_missing << name
    nil 
  end
  
  self.secret_key = require_attribute[:secret_key]
  self.access_key_id = require_attribute[:access_key_id]
  self.region_name = require_attribute[:region_name]
  self.endpoint = require_attribute[:endpoint]
  self.method = require_attribute[:method]
  self.host = require_attribute[:host]

  unless required_attributes_missing.size == 0
    raise "#{required_attributes_missing.join(',')} attributes required for a request signature"
  end

  self.debug_mode = options[:debug] || false  
  self.payload = options[:payload] || ''
  self.service_name = options[:service_name] || 'cloudsearch'
  self.headers = extract_headers(options)
  self.query = options[:query] || ''
end

Instance Method Details

#buildObject



29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/rawscsi/request_signature.rb', line 29

def build
  result_headers = default_headers.dup
  result_headers['Authorization'] = "#{algo} Credential=#{access_key_id}/#{credential}, SignedHeaders=#{canonical_headers_names_string}, Signature=#{signature}"

  result = { 
    headers: result_headers, 
  }

  if debug_mode
    result[:debug] = debug_data
  end

  result
end