Class: Promoted::Ruby::Client::LogRequestBuilder
- Inherits:
-
Object
- Object
- Promoted::Ruby::Client::LogRequestBuilder
- Defined in:
- lib/promoted/ruby/client/log_request_builder.rb
Instance Attribute Summary collapse
-
#experiment ⇒ Object
Returns the value of attribute experiment.
-
#request ⇒ Object
Returns the value of attribute request.
-
#response_insertions ⇒ Object
Returns the value of attribute response_insertions.
Instance Method Summary collapse
-
#initialize(args = {}) ⇒ LogRequestBuilder
constructor
A new instance of LogRequestBuilder.
- #log_request(include_delivery_log:, exec_server:) ⇒ Object
Constructor Details
#initialize(args = {}) ⇒ LogRequestBuilder
Returns a new instance of LogRequestBuilder.
8 9 10 11 12 13 14 |
# File 'lib/promoted/ruby/client/log_request_builder.rb', line 8 def initialize args = {} if args[:id_generator] @id_generator = args[:id_generator] else @id_generator = IdGenerator.new end end |
Instance Attribute Details
#experiment ⇒ Object
Returns the value of attribute experiment.
5 6 7 |
# File 'lib/promoted/ruby/client/log_request_builder.rb', line 5 def experiment @experiment end |
#request ⇒ Object
Returns the value of attribute request.
5 6 7 |
# File 'lib/promoted/ruby/client/log_request_builder.rb', line 5 def request @request end |
#response_insertions ⇒ Object
Returns the value of attribute response_insertions.
5 6 7 |
# File 'lib/promoted/ruby/client/log_request_builder.rb', line 5 def response_insertions @response_insertions end |
Instance Method Details
#log_request(include_delivery_log:, exec_server:) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/promoted/ruby/client/log_request_builder.rb', line 16 def log_request(include_delivery_log:, exec_server:) log_req = { platform_id: @request[:platform_id], user_info: @request[:user_info], # For now, we'll just use the request timestamp. timing: @request[:timing], client_info: @request[:client_info], device: @request[:device], } if @experiment log_req[:cohort_membership] = [@experiment] end # Log request allows for multiple requests but here we only send one. if include_delivery_log request[:request_id] = request[:request_id] || @id_generator.newID # Remove redundant fields from `request` since they're already on the LogRequest. stripped_request = @request.clone stripped_request.delete(:platform_id) stripped_request.delete(:user_info) stripped_request.delete(:timing) stripped_request.delete(:device) stripped_request.delete(:client_info) log_req[:delivery_log] = [{ execution: { execution_server: exec_server, server_version: Promoted::Ruby::Client::SERVER_VERSION }, request: stripped_request, response: { insertion: @response_insertions } }] end log_req.clean! end |