Class: TranslationCms::Api::Request

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

Constant Summary collapse

SPLITER =
'|'

Instance Method Summary collapse

Constructor Details

#initialize(env) ⇒ Request

Env is a Faraday::Env class

https://github.com/lostisland/faraday/blob/master/lib/faraday/options.rb


14
15
16
# File 'lib/translation_cms/api/request.rb', line 14

def initialize(env)
  @env = env
end

Instance Method Details

#generate_signature(secret_key = '') ⇒ Object

Generate signature token



28
29
30
31
# File 'lib/translation_cms/api/request.rb', line 28

def generate_signature(secret_key = '')
  hash = OpenSSL::HMAC.digest('SHA256', secret_key || ENV['SECRET_TOKEN'], string_to_sign)
  Base64.encode64(hash).chomp
end

#public_tokenObject



22
23
24
# File 'lib/translation_cms/api/request.rb', line 22

def public_token
  @public_token ||= ::Settings.public_token || ENV['PUBLIC_TOKEN']
end

#string_to_signObject



33
34
35
36
# File 'lib/translation_cms/api/request.rb', line 33

def string_to_sign
  # GET|/api/v1/markers|longtesttokenstring|1462368087
  [@env.method.to_s.upcase, @env.url.path, public_token, timestamp].map(&:to_s).join(SPLITER)
end

#timestampObject



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

def timestamp
  @timestamp ||= @env[:request_headers]['X-Timestamp']
end