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