Module: Lockme::SignedRequest
- Defined in:
- lib/lockme/request.rb
Overview
API request module providing argument processing and signing
Class Method Summary collapse
- .perform(method, path, data = nil) ⇒ Object
- .prepare_params(method, path, data) ⇒ Object
- .signature(*args) ⇒ Object
Class Method Details
.perform(method, path, data = nil) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/lockme/request.rb', line 6 def self.perform(method, path, data = nil) params = prepare_params(method, path, data) resp = Request.send(method.downcase, path, params).parsed_response if resp.is_a?(Hash) && resp.has_key?('error') raise Lockme::Error, resp['error'] end resp rescue JSON::ParserError raise Lockme::Error, 'Invalid response from the server' end |
.prepare_params(method, path, data) ⇒ Object
30 31 32 33 34 35 36 37 |
# File 'lib/lockme/request.rb', line 30 def self.prepare_params(method, path, data) headers = signature(method.upcase, path.gsub(%r{^\/}, ''), data) { body: data, headers: headers, debug_output: Lockme.logger }.delete_if { |key, val| key.nil? || val.nil? } end |
.signature(*args) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/lockme/request.rb', line 18 def self.signature(*args) digest = Digest::SHA1.hexdigest([ *args, Lockme.api_secret ].compact.join('')) { 'Partner-Key' => Lockme.api_key, 'Signature' => digest } end |