Class: Netvisor::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/netvisor/request.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.build_headers(url) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/netvisor/request.rb', line 22

def self.build_headers(url)
  timestamp = DateTime.parse(Time.now.utc.to_s).strftime("%F %T.%L")
  transaction_id = ((1000...9999).to_a.choice + Time.now.to_i).to_s
  return {
    'X-Netvisor-Authentication-Sender' => Netvisor.configuration.sender || 'Netvisor gem',
    'X-Netvisor-Authentication-CustomerId' => Netvisor.configuration.customer_id || 'EB_10197_551',
    'X-Netvisor-Authentication-PartnerId' => Netvisor.configuration.partner_id || 'Efi_249',
    'X-Netvisor-Authentication-Timestamp' => timestamp,
    'X-Netvisor-Authentication-MAC' => build_mac(url, timestamp, transaction_id),
    'X-Netvisor-Authentication-TransactionId' => transaction_id,
    'X-Netvisor-Interface-Language' => Netvisor.configuration.language || 'FI',
    'X-Netvisor-Organisation-ID' => Netvisor.configuration.organisation_id || '0111111-7',
    'X-Netvisor-Authentication-MACHashCalculationAlgorithm' => 'SHA256'
  }
end

.build_mac(url, timestamp, transaction_id) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/netvisor/request.rb', line 38

def self.build_mac(url, timestamp, transaction_id)
  arr = [
    url,
    Netvisor.configuration.sender || 'Netvisor gem',
    Netvisor.configuration.customer_id || 'EB_10197_551',
    timestamp,
    Netvisor.configuration.language || 'FI',
    Netvisor.configuration.organisation_id || '0111111-7',
    transaction_id,
    Netvisor.configuration.customer_key || 'EF1E64BD5D7E0301417B7FE1BF059694',
    Netvisor.configuration.partner_key || '6F4C9C0DD3C1C263DAC131ED3AF89A7C'
  ]
  p arr.join('&')
  Digest::SHA2.hexdigest(arr.join('&'))
end

.build_url(service, method, id) ⇒ Object



18
19
20
# File 'lib/netvisor/request.rb', line 18

def self.build_url(service, method, id)
  url = "#{Netvisor.configuration.host || 'http://integrationdemo.netvisor.fi'}/#{service.gsub(/_/,'')}.nv"
end

Instance Method Details

#send(xml, service, method = nil, id = nil) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/netvisor/request.rb', line 6

def send(xml, service, method = nil, id = nil)
  url = self.class.build_url(service, method, id)
  headers = self.class.build_headers(url)
  xml.gsub!("<?xml version=\"1.0\"?>", '')

  res = Faraday.post(url) do |req|
    req.headers.merge!(headers)
    req.body = xml
  end
  p res
end