Class: CommandTower::Messaging::Inbox::Mutator

Inherits:
Object
  • Object
show all
Defined in:
app/services/command_tower/messaging/inbox/mutator.rb

Constant Summary collapse

BULK_MAX_IDS =

Bulk-operation ceiling. Intentionally independent from Reader::MAX_LIMIT: list page size and the number of items a recipient may mutate in one transaction are tuned separately.

100
LIVE_ROW_OPERATIONS =

Operations that require a live row; a soft-deleted item is not available to them.

%i[mark_viewed mark_unviewed archive restore].freeze

Class Method Summary collapse

Class Method Details

.archive(recipient_id:, inbox_item_id:) ⇒ Object



24
25
26
# File 'app/services/command_tower/messaging/inbox/mutator.rb', line 24

def archive(recipient_id:, inbox_item_id:)
  mutate(recipient_id:, inbox_item_id:, operation: :archive)
end

.bulk_archive(recipient_id:, inbox_item_ids:) ⇒ Object



44
45
46
# File 'app/services/command_tower/messaging/inbox/mutator.rb', line 44

def bulk_archive(recipient_id:, inbox_item_ids:)
  bulk_mutate(recipient_id:, inbox_item_ids:, operation: :archive)
end

.bulk_delete(recipient_id:, inbox_item_ids:) ⇒ Object



52
53
54
# File 'app/services/command_tower/messaging/inbox/mutator.rb', line 52

def bulk_delete(recipient_id:, inbox_item_ids:)
  bulk_mutate(recipient_id:, inbox_item_ids:, operation: :delete)
end

.bulk_mark_unviewed(recipient_id:, inbox_item_ids:) ⇒ Object



40
41
42
# File 'app/services/command_tower/messaging/inbox/mutator.rb', line 40

def bulk_mark_unviewed(recipient_id:, inbox_item_ids:)
  bulk_mutate(recipient_id:, inbox_item_ids:, operation: :mark_unviewed)
end

.bulk_mark_viewed(recipient_id:, inbox_item_ids:) ⇒ Object



36
37
38
# File 'app/services/command_tower/messaging/inbox/mutator.rb', line 36

def bulk_mark_viewed(recipient_id:, inbox_item_ids:)
  bulk_mutate(recipient_id:, inbox_item_ids:, operation: :mark_viewed)
end

.bulk_restore(recipient_id:, inbox_item_ids:) ⇒ Object



48
49
50
# File 'app/services/command_tower/messaging/inbox/mutator.rb', line 48

def bulk_restore(recipient_id:, inbox_item_ids:)
  bulk_mutate(recipient_id:, inbox_item_ids:, operation: :restore)
end

.delete(recipient_id:, inbox_item_id:) ⇒ Object



32
33
34
# File 'app/services/command_tower/messaging/inbox/mutator.rb', line 32

def delete(recipient_id:, inbox_item_id:)
  mutate(recipient_id:, inbox_item_id:, operation: :delete)
end

.mark_unviewed(recipient_id:, inbox_item_id:) ⇒ Object



20
21
22
# File 'app/services/command_tower/messaging/inbox/mutator.rb', line 20

def mark_unviewed(recipient_id:, inbox_item_id:)
  mutate(recipient_id:, inbox_item_id:, operation: :mark_unviewed)
end

.mark_viewed(recipient_id:, inbox_item_id:) ⇒ Object



16
17
18
# File 'app/services/command_tower/messaging/inbox/mutator.rb', line 16

def mark_viewed(recipient_id:, inbox_item_id:)
  mutate(recipient_id:, inbox_item_id:, operation: :mark_viewed)
end

.restore(recipient_id:, inbox_item_id:) ⇒ Object



28
29
30
# File 'app/services/command_tower/messaging/inbox/mutator.rb', line 28

def restore(recipient_id:, inbox_item_id:)
  mutate(recipient_id:, inbox_item_id:, operation: :restore)
end