Class: Yes::Core::PayloadStore::Lookup

Inherits:
Base
  • Object
show all
Defined in:
lib/yes/core/payload_store/lookup.rb

Overview

Resolves payload store references in events by looking up stored values.

Instance Method Summary collapse

Instance Method Details

#call(event) ⇒ Hash

Returns resolved key-value pairs from the payload store.

Parameters:

  • event (PgEventstore::Event)

    the event with potential payload store references

Returns:

  • (Hash)

    resolved key-value pairs from the payload store

Raises:



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/yes/core/payload_store/lookup.rb', line 10

def call(event)
  return {} unless event.respond_to?(:ps_fields_with_values)

  keys = event.ps_fields_with_values
  return {} if keys.blank?

  raise Yes::Core::PayloadStore::Errors::MissingClient unless payload_store_client

  ps_response = payload_store_client.get_payloads(keys.values)

  unless ps_response.success?
    handle_payload_store_error(ps_response, event)
    return {}
  end

  resolved_payloads(ps_response, keys)
end