module Nordea::Siirto::Pay
Errors used by Pay
module
Constants
- PARAMS
Accepted parameters
Public Instance Methods
request(params)
click to toggle source
@param [Hash] @return [Nordea::Siirto::Request] rubocop:disable MethodLength
# File lib/nordea/siirto/pay.rb, line 34 def request(params) request = Nordea::Siirto::Request.new request.uri = uri request.method = 'POST' request.headers = { 'Accept' => 'application/json', 'Content-type' => 'application/json', 'Authorization' => "Bearer #{AccessToken.access_token}" } request.body = format_params(params).to_json Nordea::Siirto.log("Body: #{request.body}") request end
valid_iban?(params)
click to toggle source
@param [Hash] @return [Boolean]
# File lib/nordea/siirto/pay.rb, line 69 def valid_iban?(params) # It makes sense to check IBAN validity and bank compatibility before # sending request iban = Iban.new(params[:bene_account_number]) return false unless iban.validate ALLOWED_BIC.include?(iban.bic) end
valid_payload?(params)
click to toggle source
@param [Hash] @return [Boolean] rubocop:disable AbcSize,LineLength
# File lib/nordea/siirto/pay.rb, line 81 def valid_payload?(params) return false unless params.is_a?(Hash) # convenience lambda for testing conditions params_present = lambda do |key| (params.keys & PARAMS[key]).size == PARAMS[key].size end # required params present return false unless params_present.call(:required) # either person or company params present return false if params_present.call(:person) && params_present.call(:company) return false unless params_present.call(:person) || params_present.call(:company) # must not contain other params than those listed above (params.keys - PARAMS.values.flatten).size.zero? end