module NaspayRails::Payouts
Public Class Methods
create_new(endpoint, params, token)
click to toggle source
# File lib/naspay_rails/payouts.rb, line 6 def self.create_new(endpoint, params, token) route_suffix = '/api/v1/payouts' target_url = "#{endpoint}#{route_suffix}" request_uri = URI.parse(target_url) request = Net::HTTP::Post.new(request_uri) request["Authorization"] = "Bearer #{token}" request["Content-Type"] = "application/json" request["Accept"] = "application/json" request_body = case params.keys.sort when %i[amount currency transaction_id description card].sort { "amount" => params[:amount], "currency" => params[:currency], "merchantTransactionId" => params[:transaction_id], "description" => params[:description], "card" => { "cardholder" => params[:card].try(:[], :cardholder), "pan" => params[:card].try(:[], :pan), "expiryYear" => params[:card].try(:[], :exp_year), "expiryMonth" => params[:card].try(:[], :exp_month) } } else return 'please check the keys provided in params Hash!' end request.body = JSON.dump(request_body) req_options = { use_ssl: request_uri.scheme == "https", } Net::HTTP.start(request_uri.hostname, request_uri.port, req_options) { |http| http.request(request) } end