Module: TurboChat::Moderation::MemberActions
- Included in:
- TurboChat::Moderation
- Defined in:
- lib/turbo_chat/moderation/member_actions.rb
Instance Method Summary collapse
- #ban_member!(actor:, membership:) ⇒ Object
- #clear_timeout!(actor:, membership:) ⇒ Object
- #mute_member!(actor:, membership:) ⇒ Object
- #timeout_member!(actor:, membership:, until_time:) ⇒ Object
- #unmute_member!(actor:, membership:) ⇒ Object
Instance Method Details
#ban_member!(actor:, membership:) ⇒ Object
52 53 54 55 56 57 58 59 60 61 |
# File 'lib/turbo_chat/moderation/member_actions.rb', line 52 def ban_member!(actor:, membership:) update_member!( actor: actor, membership: membership, action: :can_ban_member?, attributes: { removed_at: Time.current, muted: false, timed_out_until: nil }, event_name: "turbo_chat.moderation.member_banned", system_event: :banned ) end |
#clear_timeout!(actor:, membership:) ⇒ Object
41 42 43 44 45 46 47 48 49 50 |
# File 'lib/turbo_chat/moderation/member_actions.rb', line 41 def clear_timeout!(actor:, membership:) update_member!( actor: actor, membership: membership, action: :can_timeout_member?, attributes: { timed_out_until: nil }, event_name: "turbo_chat.moderation.member_timeout_cleared", system_event: :timeout_cleared ) end |
#mute_member!(actor:, membership:) ⇒ Object
3 4 5 6 7 8 9 10 11 12 |
# File 'lib/turbo_chat/moderation/member_actions.rb', line 3 def mute_member!(actor:, membership:) update_member!( actor: actor, membership: membership, action: :can_mute_member?, attributes: { muted: true }, event_name: "turbo_chat.moderation.member_muted", system_event: :muted ) end |
#timeout_member!(actor:, membership:, until_time:) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/turbo_chat/moderation/member_actions.rb', line 25 def timeout_member!(actor:, membership:, until_time:) (actor: actor, membership: membership, action: :can_timeout_member?) raise InvalidActionError, "timeout must be in the future" if until_time.nil? || until_time <= Time.current membership.update!(timed_out_until: until_time) emit_moderation_event( "turbo_chat.moderation.member_timed_out", actor: actor, membership: membership, chat: membership.chat, extra: { timed_out_until: membership.timed_out_until } ) (actor: actor, membership: membership, event: :timed_out) membership end |
#unmute_member!(actor:, membership:) ⇒ Object
14 15 16 17 18 19 20 21 22 23 |
# File 'lib/turbo_chat/moderation/member_actions.rb', line 14 def unmute_member!(actor:, membership:) update_member!( actor: actor, membership: membership, action: :can_mute_member?, attributes: { muted: false }, event_name: "turbo_chat.moderation.member_unmuted", system_event: :unmuted ) end |