Class: Netvisor::Request
- Inherits:
-
Object
- Object
- Netvisor::Request
- Defined in:
- lib/netvisor/request.rb
Class Method Summary collapse
- .build_headers(url) ⇒ Object
- .build_mac(url, timestamp, transaction_id) ⇒ Object
- .build_url(service, method, id) ⇒ Object
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) = 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, 'X-Netvisor-Authentication-CustomerId' => Netvisor.configuration.customer_id, 'X-Netvisor-Authentication-PartnerId' => Netvisor.configuration.partner_id, 'X-Netvisor-Authentication-Timestamp' => , 'X-Netvisor-Authentication-MAC' => build_mac(url, , transaction_id), 'X-Netvisor-Authentication-TransactionId' => transaction_id, 'X-Netvisor-Interface-Language' => Netvisor.configuration.language, 'X-Netvisor-Organisation-ID' => Netvisor.configuration.organisation_id, '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, , transaction_id) arr = [ url, Netvisor.configuration.sender, Netvisor.configuration.customer_id, , Netvisor.configuration.language, Netvisor.configuration.organisation_id, transaction_id, Netvisor.configuration.customer_key, Netvisor.configuration.partner_key ] 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}/#{service.gsub(/_/,'')}.nv" end |
Instance Method Details
#dispatch(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 dispatch(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 |