class Primecontext::Api

Attributes

data[R]
options[R]

Public Class Methods

new(options = {}) click to toggle source
# File lib/primecontext/api.rb, line 10
def initialize(options = {})
  @options = Primecontext::default_options.merge(options)
  @data = { user_id: @options[:user_id] }
end

Public Instance Methods

generate_sign(data) click to toggle source
# File lib/primecontext/api.rb, line 21
def generate_sign(data)
  data_str = data.sort.join.mb_chars.downcase
  digest = OpenSSL::Digest.new 'sha256'
  OpenSSL::HMAC.hexdigest digest, @options[:secret_key], data_str
end
new_record(data = {}) click to toggle source
# File lib/primecontext/api.rb, line 15
def new_record(data = {})
  @data = @data.merge(Hash[data.map{ |(k,v)| [k.to_sym, v] }])
  @data.merge!({ sign: generate_sign(@data) })
  send_request(@data)
end
send_request(data) click to toggle source
# File lib/primecontext/api.rb, line 27
def send_request(data)
  uri = URI.parse(@options[:api_url])
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
  http.request_post(uri.request_uri, URI.encode_www_form(data))
end