Skip to content

Commit 13b8191

Browse files
gumuzferhatelmas
andauthored
added client method for query_message_flags endpoint (#62)
Co-authored-by: ferhat elmas <[email protected]>
1 parent a1fe183 commit 13b8191

File tree

5 files changed

+47
-0
lines changed

5 files changed

+47
-0
lines changed

stream_chat/async_chat/client.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,15 @@ async def unflag_message(self, target_id, **options):
130130
data = {"target_message_id": target_id, **options}
131131
return await self.post("moderation/unflag", data=data)
132132

133+
async def query_message_flags(self, filter_conditions, **options):
134+
params = {
135+
**options,
136+
"filter_conditions": filter_conditions,
137+
}
138+
return await self.get(
139+
"moderation/flags/message", params={"payload": json.dumps(params)}
140+
)
141+
133142
async def flag_user(self, target_id, **options):
134143
data = {"target_user_id": target_id, **options}
135144
return await self.post("moderation/flag", data=data)

stream_chat/base/client.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,10 @@ def flag_message(self, target_id, **options):
115115
def unflag_message(self, target_id, **options):
116116
pass
117117

118+
@abc.abstractmethod
119+
def query_message_flags(self, filter_conditions, **options):
120+
pass
121+
118122
@abc.abstractmethod
119123
def flag_user(self, target_id, **options):
120124
pass

stream_chat/client.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,15 @@ def unflag_message(self, target_id, **options):
125125
data = {"target_message_id": target_id, **options}
126126
return self.post("moderation/unflag", data=data)
127127

128+
def query_message_flags(self, filter_conditions, **options):
129+
params = {
130+
**options,
131+
"filter_conditions": filter_conditions,
132+
}
133+
return self.get(
134+
"moderation/flags/message", params={"payload": json.dumps(params)}
135+
)
136+
128137
def flag_user(self, target_id, **options):
129138
data = {"target_user_id": target_id, **options}
130139
return self.post("moderation/flag", data=data)

stream_chat/tests/async_chat/test_client.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,22 @@ async def test_flag_message(
233233
)
234234
await client.flag_message(msg_id, user_id=server_user["id"])
235235

236+
@pytest.mark.asyncio
237+
async def test_query_message_flags(
238+
self, event_loop, client, channel, random_user, server_user
239+
):
240+
msg_id = str(uuid.uuid4())
241+
await channel.send_message(
242+
{"id": msg_id, "text": "helloworld"}, random_user["id"]
243+
)
244+
await client.flag_message(msg_id, user_id=server_user["id"])
245+
response = await client.query_message_flags({"channel_cid": channel.cid})
246+
assert len(response["flags"]) == 1
247+
response = await client.query_message_flags(
248+
{"user_id": {"$in": [random_user["id"]]}}
249+
)
250+
assert len(response["flags"]) == 1
251+
236252
@pytest.mark.asyncio
237253
async def test_unflag_message(
238254
self, event_loop, client, channel, random_user, server_user

stream_chat/tests/test_client.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,15 @@ def test_flag_message(self, client, channel, random_user, server_user):
193193
channel.send_message({"id": msg_id, "text": "helloworld"}, random_user["id"])
194194
client.flag_message(msg_id, user_id=server_user["id"])
195195

196+
def test_query_message_flags(self, client, channel, random_user, server_user):
197+
msg_id = str(uuid.uuid4())
198+
channel.send_message({"id": msg_id, "text": "helloworld"}, random_user["id"])
199+
client.flag_message(msg_id, user_id=server_user["id"])
200+
response = client.query_message_flags({"channel_cid": channel.cid})
201+
assert len(response["flags"]) == 1
202+
response = client.query_message_flags({"user_id": {"$in": [random_user["id"]]}})
203+
assert len(response["flags"]) == 1
204+
196205
def test_unflag_message(self, client, channel, random_user, server_user):
197206
msg_id = str(uuid.uuid4())
198207
channel.send_message({"id": msg_id, "text": "helloworld"}, random_user["id"])

0 commit comments

Comments
 (0)