Class: StreamChat::Moderation
- Inherits:
-
Object
- Object
- StreamChat::Moderation
- Extended by:
- T::Sig
- Defined in:
- lib/stream-chat/moderation.rb
Overview
Moderation class provides all the endpoints related to moderation v2
Constant Summary collapse
- MODERATION_ENTITY_TYPES =
T.let( { user: 'stream:user', message: 'stream:chat:v1:message' }.freeze, T::Hash[Symbol, String] )
Instance Method Summary collapse
- #add_custom_flags(entity_type, entity_id, moderation_payload, flags, entity_creator_id: '') ⇒ Object
- #add_custom_message_flags(message_id, flags) ⇒ Object
- #check(entity_type, entity_id, moderation_payload, config_key, entity_creator_id: '', options: {}) ⇒ Object
- #delete_config(key, data = {}) ⇒ Object
- #flag(entity_type, entity_id, reason, entity_creator_id: '', **options) ⇒ Object
- #flag_message(message_id, reason, **options) ⇒ Object
- #flag_user(flagged_user_id, reason, **options) ⇒ Object
- #get_config(key, data = {}) ⇒ Object
- #get_user_moderation_report(user_id, **options) ⇒ Object
-
#initialize(client) ⇒ Moderation
constructor
A new instance of Moderation.
- #mute_user(target_id, **options) ⇒ Object
- #query_configs(filter_conditions, sort, **options) ⇒ Object
- #query_review_queue(filter_conditions = {}, sort = [], **options) ⇒ Object
- #submit_action(action_type, item_id, **options) ⇒ Object
- #unmute_user(target_id, **options) ⇒ Object
- #upsert_config(config) ⇒ Object
Constructor Details
#initialize(client) ⇒ Moderation
Returns a new instance of Moderation.
23 24 25 |
# File 'lib/stream-chat/moderation.rb', line 23 def initialize(client) @client = client end |
Instance Method Details
#add_custom_flags(entity_type, entity_id, moderation_payload, flags, entity_creator_id: '') ⇒ Object
227 228 229 230 231 232 233 234 235 |
# File 'lib/stream-chat/moderation.rb', line 227 def add_custom_flags(entity_type, entity_id, moderation_payload, flags, entity_creator_id: '') @client.post('api/v2/moderation/custom_check', data: { entity_type: entity_type, entity_id: entity_id, entity_creator_id: entity_creator_id, moderation_payload: moderation_payload, flags: flags }) end |
#add_custom_message_flags(message_id, flags) ⇒ Object
242 243 244 |
# File 'lib/stream-chat/moderation.rb', line 242 def (, flags) add_custom_flags(T.must(MODERATION_ENTITY_TYPES[:message]), , {}, flags) end |
#check(entity_type, entity_id, moderation_payload, config_key, entity_creator_id: '', options: {}) ⇒ Object
208 209 210 211 212 213 214 215 216 217 |
# File 'lib/stream-chat/moderation.rb', line 208 def check(entity_type, entity_id, moderation_payload, config_key, entity_creator_id: '', options: {}) @client.post('api/v2/moderation/check', data: { entity_type: entity_type, entity_id: entity_id, entity_creator_id: entity_creator_id, moderation_payload: moderation_payload, config_key: config_key, options: }) end |
#delete_config(key, data = {}) ⇒ Object
152 153 154 |
# File 'lib/stream-chat/moderation.rb', line 152 def delete_config(key, data = {}) @client.delete("api/v2/moderation/config/#{key}", params: data) end |
#flag(entity_type, entity_id, reason, entity_creator_id: '', **options) ⇒ Object
62 63 64 65 66 67 68 69 70 |
# File 'lib/stream-chat/moderation.rb', line 62 def flag(entity_type, entity_id, reason, entity_creator_id: '', **) @client.post('api/v2/moderation/flag', data: { entity_type: entity_type, entity_id: entity_id, entity_creator_id: entity_creator_id, reason: reason, ** }) end |
#flag_message(message_id, reason, **options) ⇒ Object
47 48 49 |
# File 'lib/stream-chat/moderation.rb', line 47 def (, reason, **) flag(T.must(MODERATION_ENTITY_TYPES[:message]), , reason, **) end |
#flag_user(flagged_user_id, reason, **options) ⇒ Object
35 36 37 |
# File 'lib/stream-chat/moderation.rb', line 35 def flag_user(flagged_user_id, reason, **) flag(T.must(MODERATION_ENTITY_TYPES[:user]), flagged_user_id, reason, **) end |
#get_config(key, data = {}) ⇒ Object
142 143 144 |
# File 'lib/stream-chat/moderation.rb', line 142 def get_config(key, data = {}) @client.get("api/v2/moderation/config/#{key}", params: data) end |
#get_user_moderation_report(user_id, **options) ⇒ Object
107 108 109 110 111 112 |
# File 'lib/stream-chat/moderation.rb', line 107 def get_user_moderation_report(user_id, **) @client.get('api/v2/moderation/user_report', params: { user_id: user_id, ** }) end |
#mute_user(target_id, **options) ⇒ Object
79 80 81 82 83 84 |
# File 'lib/stream-chat/moderation.rb', line 79 def mute_user(target_id, **) @client.post('api/v2/moderation/mute', data: { target_ids: [target_id], ** }) end |
#query_configs(filter_conditions, sort, **options) ⇒ Object
162 163 164 165 166 167 168 |
# File 'lib/stream-chat/moderation.rb', line 162 def query_configs(filter_conditions, sort, **) @client.post('api/v2/moderation/configs', data: { filter: filter_conditions, sort: sort, ** }) end |
#query_review_queue(filter_conditions = {}, sort = [], **options) ⇒ Object
120 121 122 123 124 125 126 |
# File 'lib/stream-chat/moderation.rb', line 120 def query_review_queue(filter_conditions = {}, sort = [], **) @client.post('api/v2/moderation/review_queue', data: { filter: filter_conditions, sort: StreamChat.get_sort_fields(sort), ** }) end |
#submit_action(action_type, item_id, **options) ⇒ Object
176 177 178 179 180 181 182 |
# File 'lib/stream-chat/moderation.rb', line 176 def submit_action(action_type, item_id, **) @client.post('api/v2/moderation/submit_action', data: { action_type: action_type, item_id: item_id, ** }) end |
#unmute_user(target_id, **options) ⇒ Object
92 93 94 95 96 97 |
# File 'lib/stream-chat/moderation.rb', line 92 def unmute_user(target_id, **) @client.post('api/v2/moderation/unmute', data: { target_ids: [target_id], ** }) end |
#upsert_config(config) ⇒ Object
132 133 134 |
# File 'lib/stream-chat/moderation.rb', line 132 def upsert_config(config) @client.post('api/v2/moderation/config', data: config) end |