Class: Textus::Action::Pulse
Class Method Summary collapse
- .call(container:, call:, since: nil) ⇒ Object
- .index_etag(container) ⇒ Object
- .review_keys(manifest, container) ⇒ Object
Methods inherited from Base
Methods included from Contract::DSL
#arg, #cli, #cli_stdin, #contract, #contract?, #summary, #surfaces, #verb, #view
Class Method Details
.call(container:, call:, since: nil) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/textus/action/pulse.rb', line 14 def self.call(container:, call:, since: nil, **) manifest = container.manifest audit_log = container.audit_log root = container.root since ||= Textus::Store::Cursor.new(root: root, role: call.role).read changed = Value::Result.unwrap(Textus::Action::Audit.call(container: container, seq_since: since)) result = { "cursor" => audit_log.latest_seq, "changed" => changed, "pending_review" => review_keys(manifest, container), "contract_etag" => Textus::Value::Etag.for_contract(root), "index_etag" => index_etag(container), } Textus::Store::Cursor.new(root: root, role: call.role).write(result["cursor"]) Success(result) end |