Class: MastercardCoreSdk::Converters::JoseConverter
- Inherits:
-
Object
- Object
- MastercardCoreSdk::Converters::JoseConverter
- Includes:
- MastercardCoreSdk::Core, Exceptions, Util
- Defined in:
- lib/mastercard_core_sdk/converters/jose_converter.rb
Overview
Handles conversion for content-type : “application/jose”
Constant Summary collapse
- @@logger =
Logging.logger[self]
Instance Attribute Summary collapse
-
#skip_root ⇒ Object
Returns the value of attribute skip_root.
Instance Method Summary collapse
-
#initialize ⇒ JoseConverter
constructor
A new instance of JoseConverter.
-
#request_body_converter(object) ⇒ Object
Convert object (array, hash, object, etc) to JSON.
-
#response_body_converter(response, return_type) ⇒ Object
Convert the response to the given return type.
Constructor Details
#initialize ⇒ JoseConverter
Returns a new instance of JoseConverter.
16 17 18 |
# File 'lib/mastercard_core_sdk/converters/jose_converter.rb', line 16 def initialize @skip_root = false end |
Instance Attribute Details
#skip_root ⇒ Object
Returns the value of attribute skip_root.
14 15 16 |
# File 'lib/mastercard_core_sdk/converters/jose_converter.rb', line 14 def skip_root @skip_root end |
Instance Method Details
#request_body_converter(object) ⇒ Object
Convert object (array, hash, object, etc) to JSON.
23 24 25 26 |
# File 'lib/mastercard_core_sdk/converters/jose_converter.rb', line 23 def request_body_converter(object) @@logger.error ERR_MSG_JOSE_CONVERSION raise SDKConversionError.new(:error_message => ERR_MSG_JOSE_CONVERSION, :source => self.class) end |
#response_body_converter(response, return_type) ⇒ Object
Convert the response to the given return type.
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/mastercard_core_sdk/converters/jose_converter.rb', line 30 def response_body_converter(response, return_type) body = response.response_body request = response.request return nil if body.nil? || body.empty? begin headers = request.[:headers] # api_config = MasterCardApiConfiguration.api_config(headers[ApiConfig::CONFIG_NAME_HEADER]) api_config = Jose.api_config plain_text = Jose.decrypt(body, api_config.private_key) data = JSON.parse("[#{plain_text}]", :symbolize_names => true)[0] rescue JSON::ParserError => e if %w(String Date DateTime).include?(return_type.to_s) data = body else @@logger.error e. raise SDKConversionError.new(:error_message => e., :source => self.class) end end convert_to_type data, return_type end |