Class: SolidObjects::DeadLetterManager
- Inherits:
-
Object
- Object
- SolidObjects::DeadLetterManager
- Defined in:
- lib/solid_objects/dead_letter_manager.rb,
sig/generated/lib/solid_objects/dead_letter_manager.rbs
Instance Method Summary collapse
- #all(authorization_context: nil) ⇒ ActiveRecord::Relation[DeadLetter]
- #authorize!(action, authorization_context:, dead_letter_id: nil) ⇒ void
- #retry(dead_letter_id, authorization_context: nil) ⇒ MessageReference
Instance Method Details
#all(authorization_context: nil) ⇒ ActiveRecord::Relation[DeadLetter]
6 7 8 9 |
# File 'lib/solid_objects/dead_letter_manager.rb', line 6 def all(authorization_context: nil) (:inspect, authorization_context:) DeadLetter.order(last_failed_at: :desc, id: :desc) end |
#authorize!(action, authorization_context:, dead_letter_id: nil) ⇒ void
This method returns an undefined value.
35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/solid_objects/dead_letter_manager.rb', line 35 def (action, authorization_context:, dead_letter_id: nil) = SolidObjects.configuration..call( action: action.to_s, resource: "dead_letters", resource_id: dead_letter_id, authorization_context: ) return if raise Unauthorized, "actor administration is not authorized" end |
#retry(dead_letter_id, authorization_context: nil) ⇒ MessageReference
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/solid_objects/dead_letter_manager.rb', line 12 def retry(dead_letter_id, authorization_context: nil) (:retry, authorization_context:, dead_letter_id:) dead_letter = DeadLetter.find(dead_letter_id) return MessageReference.(Message.find(dead_letter.)) if dead_letter. = dead_letter. = Mailbox.new.enqueue( Reference.new( actor_type: dead_letter.actor_type, actor_id: dead_letter.actor_id ), dead_letter., dead_letter.arguments, kind: ., idempotency_key: "dead-letter:#{dead_letter.id}" ) dead_letter.update!(retried_message_id: .id) end |