Class: Fleck::Core::Consumer::Request
- Inherits:
-
Object
- Object
- Fleck::Core::Consumer::Request
- Includes:
- Loggable
- Defined in:
- lib/fleck/core/consumer/request.rb
Instance Attribute Summary collapse
-
#action ⇒ Object
readonly
Returns the value of attribute action.
-
#app_id ⇒ Object
readonly
Returns the value of attribute app_id.
-
#created_at ⇒ Object
readonly
Returns the value of attribute created_at.
-
#data ⇒ Object
readonly
Returns the value of attribute data.
-
#delivery_tag ⇒ Object
readonly
Returns the value of attribute delivery_tag.
-
#errors ⇒ Object
readonly
Returns the value of attribute errors.
-
#headers ⇒ Object
readonly
Returns the value of attribute headers.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#ip ⇒ Object
readonly
Returns the value of attribute ip.
-
#metadata ⇒ Object
readonly
Returns the value of attribute metadata.
-
#params ⇒ Object
readonly
Returns the value of attribute params.
-
#payload ⇒ Object
readonly
Returns the value of attribute payload.
-
#processed_at ⇒ Object
readonly
Returns the value of attribute processed_at.
-
#reply_to ⇒ Object
readonly
Returns the value of attribute reply_to.
-
#response ⇒ Object
readonly
Returns the value of attribute response.
-
#status ⇒ Object
readonly
Returns the value of attribute status.
-
#version ⇒ Object
readonly
Returns the value of attribute version.
Instance Method Summary collapse
- #execution_time ⇒ Object
- #failed? ⇒ Boolean
-
#initialize(metadata, payload, delivery_info) ⇒ Request
constructor
A new instance of Request.
- #log_headers_and_params! ⇒ Object
- #processed! ⇒ Object
- #reject!(requeue: false) ⇒ Object
- #rejected? ⇒ Boolean
- #requeue? ⇒ Boolean
Methods included from Loggable
Constructor Details
#initialize(metadata, payload, delivery_info) ⇒ Request
Returns a new instance of Request.
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/fleck/core/consumer/request.rb', line 12 def initialize(, payload, delivery_info) @created_at = Time.now @id = .correlation_id logger.progname += " #{@id}" @response = Fleck::Core::Consumer::Response.new(.correlation_id) @metadata = @app_id = [:app_id] @reply_to = @metadata.reply_to @payload = payload @exchange = delivery_info.exchange @queue = delivery_info.routing_key @delivery_tag = delivery_info.delivery_tag @data = {} @headers = (@metadata.headers || {}).to_hash_with_indifferent_access @action = @metadata.type @version = nil @ip = nil @params = {} @failed = false @rejected = false @requeue = false parse_request! end |
Instance Attribute Details
#action ⇒ Object (readonly)
Returns the value of attribute action.
9 10 11 |
# File 'lib/fleck/core/consumer/request.rb', line 9 def action @action end |
#app_id ⇒ Object (readonly)
Returns the value of attribute app_id.
9 10 11 |
# File 'lib/fleck/core/consumer/request.rb', line 9 def app_id @app_id end |
#created_at ⇒ Object (readonly)
Returns the value of attribute created_at.
9 10 11 |
# File 'lib/fleck/core/consumer/request.rb', line 9 def created_at @created_at end |
#data ⇒ Object (readonly)
Returns the value of attribute data.
9 10 11 |
# File 'lib/fleck/core/consumer/request.rb', line 9 def data @data end |
#delivery_tag ⇒ Object (readonly)
Returns the value of attribute delivery_tag.
9 10 11 |
# File 'lib/fleck/core/consumer/request.rb', line 9 def delivery_tag @delivery_tag end |
#errors ⇒ Object (readonly)
Returns the value of attribute errors.
9 10 11 |
# File 'lib/fleck/core/consumer/request.rb', line 9 def errors @errors end |
#headers ⇒ Object (readonly)
Returns the value of attribute headers.
9 10 11 |
# File 'lib/fleck/core/consumer/request.rb', line 9 def headers @headers end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
9 10 11 |
# File 'lib/fleck/core/consumer/request.rb', line 9 def id @id end |
#ip ⇒ Object (readonly)
Returns the value of attribute ip.
9 10 11 |
# File 'lib/fleck/core/consumer/request.rb', line 9 def ip @ip end |
#metadata ⇒ Object (readonly)
Returns the value of attribute metadata.
9 10 11 |
# File 'lib/fleck/core/consumer/request.rb', line 9 def @metadata end |
#params ⇒ Object (readonly)
Returns the value of attribute params.
9 10 11 |
# File 'lib/fleck/core/consumer/request.rb', line 9 def params @params end |
#payload ⇒ Object (readonly)
Returns the value of attribute payload.
9 10 11 |
# File 'lib/fleck/core/consumer/request.rb', line 9 def payload @payload end |
#processed_at ⇒ Object (readonly)
Returns the value of attribute processed_at.
9 10 11 |
# File 'lib/fleck/core/consumer/request.rb', line 9 def processed_at @processed_at end |
#reply_to ⇒ Object (readonly)
Returns the value of attribute reply_to.
9 10 11 |
# File 'lib/fleck/core/consumer/request.rb', line 9 def reply_to @reply_to end |
#response ⇒ Object (readonly)
Returns the value of attribute response.
9 10 11 |
# File 'lib/fleck/core/consumer/request.rb', line 9 def response @response end |
#status ⇒ Object (readonly)
Returns the value of attribute status.
9 10 11 |
# File 'lib/fleck/core/consumer/request.rb', line 9 def status @status end |
#version ⇒ Object (readonly)
Returns the value of attribute version.
9 10 11 |
# File 'lib/fleck/core/consumer/request.rb', line 9 def version @version end |
Instance Method Details
#execution_time ⇒ Object
42 43 44 |
# File 'lib/fleck/core/consumer/request.rb', line 42 def execution_time ((@processed_at.to_f - @created_at.to_f) * 1000).round(2) end |
#failed? ⇒ Boolean
46 47 48 |
# File 'lib/fleck/core/consumer/request.rb', line 46 def failed? @failed end |
#log_headers_and_params! ⇒ Object
64 65 66 67 68 69 70 71 72 |
# File 'lib/fleck/core/consumer/request.rb', line 64 def log_headers_and_params! queue_name = "(#{@exchange == '' ? @queue : "#{@queue}@#{@exchange}"})".color(:red) endpoint = "/#{action} :#{@version || 'v1'}".color(:red) = "\n" \ "#{ip} - #{queue_name} #{endpoint} [#{@id}]\n" \ " ~ headers ~ #{headers.inspect.color(:green)}\n" \ " @params #{params.inspect.color(:green)}" logger.debug end |
#processed! ⇒ Object
38 39 40 |
# File 'lib/fleck/core/consumer/request.rb', line 38 def processed! @processed_at = Time.now end |
#reject!(requeue: false) ⇒ Object
50 51 52 53 54 |
# File 'lib/fleck/core/consumer/request.rb', line 50 def reject!(requeue: false) @rejected = true @requeue = requeue processed! end |
#rejected? ⇒ Boolean
56 57 58 |
# File 'lib/fleck/core/consumer/request.rb', line 56 def rejected? @rejected end |
#requeue? ⇒ Boolean
60 61 62 |
# File 'lib/fleck/core/consumer/request.rb', line 60 def requeue? @requeue end |