class StockShaker::Client::ShopeeOP
Attributes
common_params[R]
rest_url[R]
server_url[R]
Public Class Methods
new(server_url, shop_id)
click to toggle source
# File lib/stock_shaker/client/shopee_op.rb, line 16 def initialize(server_url, shop_id) @common_params = { shopid: shop_id.to_i, partner_id: StockShaker.config.shopee_config.partner_id.to_i, timestamp: DateTime.now.to_time.to_i } @server_url = server_url @rest_url = nil validates! end
Public Instance Methods
do_signature(rest_url, request_params)
click to toggle source
# File lib/stock_shaker/client/shopee_op.rb, line 39 def do_signature(rest_url, request_params) signature_base_string = "#{rest_url}|#{request_params}" OpenSSL::HMAC.hexdigest('SHA256', StockShaker.config.shopee_config.secret_key, signature_base_string) end
execute(request)
click to toggle source
# File lib/stock_shaker/client/shopee_op.rb, line 27 def execute(request) request_params = @common_params.merge(request.api_params).to_json @rest_url = "#{@server_url}#{request.api_name}" signature = do_signature(@rest_url, request_params) request.add_header_params('content-type', 'json') request.add_header_params('Authorization', signature) perform(@rest_url, request, request_params) end
perform(url, request, request_params)
click to toggle source
# File lib/stock_shaker/client/shopee_op.rb, line 44 def perform(url, request, request_params) RestClient::Request.execute( method: request.http_method, payload: request_params, url: url, headers: request.header_params ) rescue StandardError => err err end
validates!()
click to toggle source
# File lib/stock_shaker/client/shopee_op.rb, line 55 def validates! raise 'server_url is required' unless @server_url end