module Plagiarism::Client::SignedRequest
Constants
- HEADER_KEYS
Protected Instance Methods
add_signature(headers, request_method, path)
click to toggle source
# File lib/plagiarism/client/signed_request.rb, line 26 def add_signature(headers, request_method, path) @prefix ||= Plagiarism::Client.endpoint.gsub(/.*?(\/api\/v\d+.*)/, '\1') path = File.join(@prefix, path) options = signature_options(headers, request_method, path) HEADER_KEYS.each do |kind, header| headers[normalize_key(header)] = options[kind].to_s end headers end
generate_signature(options)
click to toggle source
# File lib/plagiarism/client/signed_request.rb, line 58 def generate_signature(options) ApiSignature::Generator .new(options) .generate_signature(Plagiarism::Client.secret) end
signature_options(headers, request_method, path)
click to toggle source
# File lib/plagiarism/client/signed_request.rb, line 38 def signature_options(headers, request_method, path) options = { path: path, request_method: request_method.to_s.upcase, access_key: Plagiarism::Client.token, timestamp: timestamp_for_options(headers) }.with_indifferent_access options[:signature] = generate_signature(options) options end
timestamp_for_options(headers)
click to toggle source
# File lib/plagiarism/client/signed_request.rb, line 51 def timestamp_for_options(headers) header_key = HEADER_KEYS[:timestamp].gsub(/^HTTP_/, '') return headers[header_key] if headers.key? header_key Time.zone.now.to_i end
Private Instance Methods
normalize_key(key)
click to toggle source
# File lib/plagiarism/client/signed_request.rb, line 66 def normalize_key(key) key.gsub(/^HTTP_/i, '').tr('_', '-').downcase end