module AcademicBenchmarks::Api::Auth

Public Class Methods

auth_query_params(partner_id:, partner_key:, expires:, user_id: "") click to toggle source
# File lib/academic_benchmarks/api/auth.rb, line 6
def self.auth_query_params(partner_id:, partner_key:, expires:, user_id: "")
  {
    "partner.id" => partner_id,
    "auth.signature" => signature_for(
      partner_key: partner_key,
      message: self.message(expires: expires, user_id: user_id)
    ),
    "auth.expires" => expires
  }.tap do |params|
    params["user.id"] = user_id unless user_id.empty?
  end
end
expire_time_in(offset) click to toggle source
# File lib/academic_benchmarks/api/auth.rb, line 43
def self.expire_time_in(offset)
  Time.now.to_i + offset.to_i
end
expire_time_in_10_seconds() click to toggle source
# File lib/academic_benchmarks/api/auth.rb, line 35
def self.expire_time_in_10_seconds
  self.expire_time_in(10.seconds)
end
expire_time_in_2_hours() click to toggle source
# File lib/academic_benchmarks/api/auth.rb, line 39
def self.expire_time_in_2_hours
  self.expire_time_in(2.hours)
end
message(expires:, user_id: '') click to toggle source
# File lib/academic_benchmarks/api/auth.rb, line 27
def self.message(expires:, user_id: '')
  if user_id.empty?
    "#{expires}"
  else
    "#{expires}\n#{user_id}"
  end
end
signature_for(partner_key:, message:) click to toggle source
# File lib/academic_benchmarks/api/auth.rb, line 19
def self.signature_for(partner_key:, message:)
  Base64.encode64(OpenSSL::HMAC.digest(
    OpenSSL::Digest.new('sha256'),
    partner_key,
    message
  )).chomp
end