Skip to content

Commit 573c586

Browse files
authored
feat: add new moderation apis (#88)
1 parent 25d400b commit 573c586

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

lib/stream-chat/client.rb

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,22 @@ def unflag_user(id, **options)
140140
post('moderation/unflag', data: payload)
141141
end
142142

143+
sig { params(options: T.untyped).returns(StreamChat::StreamResponse) }
144+
def query_flag_reports(**options)
145+
data = { filter_conditions: options }
146+
post('moderation/reports', data: data)
147+
end
148+
149+
sig { params(report_id: String, review_result: String, user_id: String, details: T.untyped).returns(StreamChat::StreamResponse) }
150+
def review_flag_report(report_id, review_result, user_id, **details)
151+
data = {
152+
review_result: review_result,
153+
user_id: user_id,
154+
review_details: details
155+
}
156+
patch("moderation/reports/#{report_id}", data: data)
157+
end
158+
143159
sig { params(id: String).returns(StreamChat::StreamResponse) }
144160
def get_message(id)
145161
get("messages/#{id}")

spec/client_spec.rb

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,25 @@ def loop_times(times)
225225
expect(response['flags'].length).to eq 1
226226
end
227227

228+
it 'queries flag reports' do
229+
msg_id = SecureRandom.uuid
230+
@channel.send_message({
231+
'id' => msg_id,
232+
'text' => 'Hello world'
233+
}, @random_user[:id])
234+
@client.flag_message(msg_id, user_id: @random_users[0][:id])
235+
response = @client.query_flag_reports(message_id: msg_id)
236+
expect(response['flag_reports'].length).to eq 1
237+
238+
response = @client.review_flag_report(
239+
response['flag_reports'][0]['id'],
240+
'reviewed',
241+
@random_user[:id],
242+
custom: 'reason_a'
243+
)
244+
expect(response['flag_report']).not_to be_nil
245+
end
246+
228247
it 'marks everything as read' do
229248
@client.mark_all_read(@random_user[:id])
230249
end

0 commit comments

Comments
 (0)