Class: CommandTower::Messaging::Contract::Observability::Publisher
- Inherits:
-
Object
- Object
- CommandTower::Messaging::Contract::Observability::Publisher
- Defined in:
- app/services/command_tower/messaging/contract/observability/publisher.rb
Constant Summary collapse
- FORBIDDEN_KEYS =
%i[title body text metadata email password token].freeze
Class Method Summary collapse
- .emit(level, payload) ⇒ Object
- .error(payload = nil, **kwargs) ⇒ Object
- .info(payload = nil, **kwargs) ⇒ Object
- .warn(payload = nil, **kwargs) ⇒ Object
Class Method Details
.emit(level, payload) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'app/services/command_tower/messaging/contract/observability/publisher.rb', line 23 def emit(level, payload) hash = payload.respond_to?(:to_h) ? payload.to_h : {} event = hash[:event] || hash["event"] raise ArgumentError, "messaging event name required" if event.blank? name = event.to_s.sub(/\Amessaging\./, "") extra = {} hash.each do |key, value| next if key.to_s == "event" extra[key.to_sym] = value end FORBIDDEN_KEYS.each { |key| extra.delete(key) } extra[:log_level] = level CommandTower::Events.publish(category: :messaging, name:, payload: extra) end |
.error(payload = nil, **kwargs) ⇒ Object
19 20 21 |
# File 'app/services/command_tower/messaging/contract/observability/publisher.rb', line 19 def error(payload = nil, **kwargs) emit(:error, payload || kwargs) end |
.info(payload = nil, **kwargs) ⇒ Object
11 12 13 |
# File 'app/services/command_tower/messaging/contract/observability/publisher.rb', line 11 def info(payload = nil, **kwargs) emit(:info, payload || kwargs) end |
.warn(payload = nil, **kwargs) ⇒ Object
15 16 17 |
# File 'app/services/command_tower/messaging/contract/observability/publisher.rb', line 15 def warn(payload = nil, **kwargs) emit(:warn, payload || kwargs) end |