Module: Legion::Extensions::Llm::Ledger::Helpers::SubscriptionMessage

Defined in:
lib/legion/extensions/llm/ledger/helpers/subscription_message.rb

Class Method Summary collapse

Class Method Details

.decode_payload(message, metadata, delivery_info) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/legion/extensions/llm/ledger/helpers/subscription_message.rb', line 14

def decode_payload(message, , delivery_info)
  headers = ()
  properties = ()
  payload = decrypt_payload(message, headers, properties)
  body = parse_payload(payload, properties)

  {
    payload:  body,
    metadata: {
      headers:    headers,
      properties: properties.merge(routing_key: routing_key(delivery_info))
    }
  }
end

.extract_headers(payload, metadata) ⇒ Object



66
67
68
69
70
71
72
73
74
75
# File 'lib/legion/extensions/llm/ledger/helpers/subscription_message.rb', line 66

def extract_headers(payload, )
  explicit = [:headers]
  return explicit if explicit.is_a?(Hash) && explicit.any?
  return {} unless payload.is_a?(Hash)

  payload.each_with_object({}) do |(key, value), hdrs|
    str = key.to_s
    hdrs[str] = value if str.start_with?('x-legion-') || str == 'legion_protocol_version'
  end
end

.runner_args(payload, metadata, message) ⇒ Object



77
78
79
80
81
82
83
84
85
# File 'lib/legion/extensions/llm/ledger/helpers/subscription_message.rb', line 77

def runner_args(payload, , message)
  if message.key?(:payload)
    [message[:payload], message[:metadata] || {}]
  elsif payload.nil? && message.any?
    [message, ]
  else
    [payload, ]
  end
end