Sha256: a92660e42b95f28f90931d01044adf993f79a25daf9fbc5a71de5c2141c2eb39
Contents?: true
Size: 1.53 KB
Versions: 1
Compression:
Stored size: 1.53 KB
Contents
# frozen_string_literal: true require 'digest' module Fawry module Requests module RefundRequest def fire_refund_request fawry_api_response = Connection.post(request[:path], request[:params], request[:body], request[:options]) response_body = JSON.parse(fawry_api_response.body) FawryResponse.new(response_body) end private def build_refund_request { path: 'refund', params: {}, body: refund_request_transformed_params, options: options } end def request_params @request_params = params end def refund_request_transformed_params { merchantCode: request_params[:merchant_code], referenceNumber: request_params[:reference_number], refundAmount: request_params[:refund_amount], reason: request_params[:reason], signature: refund_request_signature }.compact end def validate_refund_params! contract = Contracts::RefundRequestContract.new.call(request_params) raise InvalidFawryRequestError, contract.errors.to_h if contract.failure? end def refund_request_signature Digest::SHA256.hexdigest("#{request_params[:merchant_code]}#{request_params[:reference_number]}"\ "#{format('%<refund_amount>.2f', refund_amount: request_params[:refund_amount])}"\ "#{request_params[:reason]}#{request_params[:fawry_secure_key]}") end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
fawry-0.3.0 | lib/fawry/requests/refund_request.rb |