Skip to content

Commit 986e239

Browse files
authored
User mute expiration (#31)
In order to support user mute expiration, I've added an options keyword argument to the mute_user api method. When a timeout option given, an expiry time on the mute is set in the backend.
1 parent 0439ac6 commit 986e239

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

stream_chat/client.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,15 +156,16 @@ def unflag_user(self, target_id, **options):
156156
data.update(options)
157157
return self.post("moderation/unflag", data=data)
158158

159-
def mute_user(self, target_id, user_id):
159+
def mute_user(self, target_id, user_id, **options):
160160
"""
161161
Create a mute
162162
163163
:param target_id: the user getting muted
164164
:param user_id: the user muting the target
165+
:param options: additional mute options
165166
:return:
166167
"""
167-
data = dict(target_id=target_id, user_id=user_id)
168+
data = dict(target_id=target_id, user_id=user_id, **options)
168169
return self.post("moderation/mute", data=data)
169170

170171
def unmute_user(self, target_id, user_id):

stream_chat/tests/test_client.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,17 @@ class TestClient(object):
1010
def test_mute_user(self, client, random_users):
1111
response = client.mute_user(random_users[0]["id"], random_users[1]["id"])
1212
assert "mute" in response
13+
assert "expires" not in response["mute"]
14+
assert response["mute"]["target"]["id"] == random_users[0]["id"]
15+
assert response["mute"]["user"]["id"] == random_users[1]["id"]
16+
client.unmute_user(random_users[0]["id"], random_users[1]["id"])
17+
18+
def test_mute_user_with_timeout(self, client, random_users):
19+
response = client.mute_user(
20+
random_users[0]["id"], random_users[1]["id"], timeout=10
21+
)
22+
assert "mute" in response
23+
assert "expires" in response["mute"]
1324
assert response["mute"]["target"]["id"] == random_users[0]["id"]
1425
assert response["mute"]["user"]["id"] == random_users[1]["id"]
1526
client.unmute_user(random_users[0]["id"], random_users[1]["id"])

0 commit comments

Comments
 (0)