Class: Ingenico::Connect::SDK::Logging::LogMessageBuilder
- Inherits:
-
Object
- Object
- Ingenico::Connect::SDK::Logging::LogMessageBuilder
- Defined in:
- lib/ingenico/connect/sdk/logging/log_message_builder.rb
Overview
Abstract class used to construct a message describing a request or response.
Direct Known Subclasses
Instance Attribute Summary collapse
-
#body ⇒ String
readonly
Request or response body as a string.
-
#content_type ⇒ String
readonly
Content type of the body, generally ‘application/json’ or ‘text/html’.
-
#headers ⇒ String
readonly
Request or response headers in string form.
-
#request_id ⇒ String
readonly
An identifier assigned to the request and response.
Instance Method Summary collapse
-
#add_headers(name, value) ⇒ Object
Adds a single header to the #headers string.
-
#get_message ⇒ Object
Constructs and returns the log message as a string.
-
#initialize(request_id) ⇒ LogMessageBuilder
constructor
Create a new LogMessageBuilder.
-
#is_binary(content_type) ⇒ Object
Returns whether or not the content type is binary.
- #set_body(body, content_type) ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(request_id) ⇒ LogMessageBuilder
Create a new LogMessageBuilder
18 19 20 21 22 |
# File 'lib/ingenico/connect/sdk/logging/log_message_builder.rb', line 18 def initialize(request_id) raise ArgumentError if request_id.nil? or request_id.empty? @request_id = request_id @headers = '' end |
Instance Attribute Details
#body ⇒ String (readonly)
Request or response body as a string
10 11 12 |
# File 'lib/ingenico/connect/sdk/logging/log_message_builder.rb', line 10 def body @body end |
#content_type ⇒ String (readonly)
Content type of the body, generally ‘application/json’ or ‘text/html’
10 11 12 |
# File 'lib/ingenico/connect/sdk/logging/log_message_builder.rb', line 10 def content_type @content_type end |
#headers ⇒ String (readonly)
Request or response headers in string form
10 11 12 |
# File 'lib/ingenico/connect/sdk/logging/log_message_builder.rb', line 10 def headers @headers end |
#request_id ⇒ String (readonly)
An identifier assigned to the request and response
10 11 12 |
# File 'lib/ingenico/connect/sdk/logging/log_message_builder.rb', line 10 def request_id @request_id end |
Instance Method Details
#add_headers(name, value) ⇒ Object
Adds a single header to the #headers string
25 26 27 28 29 30 |
# File 'lib/ingenico/connect/sdk/logging/log_message_builder.rb', line 25 def add_headers(name, value) @headers += ', ' if @headers.length > 0 @headers += name + '="' @headers += LoggingUtil.obfuscate_header(name, value) unless value.nil? @headers += '"' end |
#get_message ⇒ Object
Constructs and returns the log message as a string.
46 47 48 |
# File 'lib/ingenico/connect/sdk/logging/log_message_builder.rb', line 46 def raise NotImplementedError.new("#{self.class.name}#get_message() is not implemented.") end |
#is_binary(content_type) ⇒ Object
Returns whether or not the content type is binary
64 65 66 67 68 69 70 71 |
# File 'lib/ingenico/connect/sdk/logging/log_message_builder.rb', line 64 def is_binary(content_type) if content_type.nil? return false else content_type = content_type.downcase return !(content_type.start_with?("text/") || content_type.include?("json") || content_type.include?("xml")) end end |
#set_body(body, content_type) ⇒ Object
36 37 38 39 40 41 42 43 |
# File 'lib/ingenico/connect/sdk/logging/log_message_builder.rb', line 36 def set_body(body, content_type) if is_binary(content_type) @body = "<binary content>" else @body = LoggingUtil.obfuscate_body(body) end @content_type = content_type end |
#to_s ⇒ Object
50 51 52 53 54 55 56 |
# File 'lib/ingenico/connect/sdk/logging/log_message_builder.rb', line 50 def to_s if self.class == LogMessageBuilder return super.to_s else return end end |