class Nordea::Siirto::Protocols::Base
This class may be used as a base class for protocol implementations. Sub-classes should implement :send_request and :parse_response methods correctly.
Gem expects protocol implementation to respond to :send! method, which takes in a generic Siirto
request object, and returns a generic Siirto
response object.
Public Instance Methods
send!(request)
click to toggle source
Public interface of protocol implementations @param [Nordea::Siirto::Request] @return [Nordea::Siirto::Response] rubocop:disable MethodLength,AbcSize,LineLength
# File lib/nordea/siirto/protocols/base.rb, line 17 def send!(request) uri = request.uri Nordea::Siirto.log("Sending request to: #{uri}") # Send request begin protocol_response = send_request(request) rescue StandardError => e Nordea::Siirto.log("Failed to send request: #{request.inspect} #{e.message}") raise end # Parse response begin response = parse_response(protocol_response) rescue StandardError => e Nordea::Siirto.log("Failed to parse response: #{protocol_response.inspect} #{e.message}") raise end # Log response message = "Server responds: #{response.message}" message << " #{response.code}" unless response.body['access_token'] # do not log token message << " #{response.body}" end Nordea::Siirto.log(message) response end
Private Instance Methods
parse_response(protocol_response)
click to toggle source
Sub-class must implement @params [Object] Protocol-specific response object @return [Nordea::Siirto::Response]
# File lib/nordea/siirto/protocols/base.rb, line 61 def parse_response(protocol_response) raise NotImplementedError, 'Sub-class must implement' end
send_request(request)
click to toggle source
Sub-class must implement @param [Nordea::Siirto::Request] @return [Object] Protocol-specific response object
# File lib/nordea/siirto/protocols/base.rb, line 54 def send_request(request) raise NotImplementedError, 'Sub-class must implement' end