Module: TurboChat::Moderation::ChatActions

Included in:
TurboChat::Moderation
Defined in:
lib/turbo_chat/moderation/chat_actions.rb

Instance Method Summary collapse

Instance Method Details

#close_chat!(actor:, chat:) ⇒ Object



13
14
15
16
17
18
19
20
21
22
# File 'lib/turbo_chat/moderation/chat_actions.rb', line 13

def close_chat!(actor:, chat:)
  update_chat!(
    actor: actor,
    chat: chat,
    gate: :can_close_chat?,
    error_message: "Not allowed to close chat",
    event_name: "turbo_chat.moderation.chat_closed",
    chat_event: :close!
  )
end

#delete_message!(actor:, message:) ⇒ Object



3
4
5
6
7
8
9
10
11
# File 'lib/turbo_chat/moderation/chat_actions.rb', line 3

def delete_message!(actor:, message:)
  permission = permission_for(actor, message.chat)
  authorize_permission!(permission.can_delete_message?(message), "Not allowed to delete message")

  payload = moderation_message_payload(message)
  message.destroy!
  emit_moderation_event("turbo_chat.moderation.message_deleted", actor: actor, payload: payload, chat: message.chat)
  true
end

#reopen_chat!(actor:, chat:) ⇒ Object



24
25
26
27
28
29
30
31
32
33
# File 'lib/turbo_chat/moderation/chat_actions.rb', line 24

def reopen_chat!(actor:, chat:)
  update_chat!(
    actor: actor,
    chat: chat,
    gate: :can_reopen_chat?,
    error_message: "Not allowed to reopen chat",
    event_name: "turbo_chat.moderation.chat_reopened",
    chat_event: :reopen!
  )
end