Skip to content

Commit a18d433

Browse files
peterdemepeterdeme
and
peterdeme
authored
feat: add truncate options [CHAT-2621] (#86)
Co-authored-by: peterdeme <[email protected]>
1 parent 663e538 commit a18d433

File tree

7 files changed

+30
-5
lines changed

7 files changed

+30
-5
lines changed
File renamed without changes.

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,5 @@ pip-selfcheck.json
6262
.vscode
6363
*,cover
6464
.eggs
65+
.env
6566
.envrc

stream_chat/async_chat/channel.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,13 +139,14 @@ async def delete(self):
139139
"""
140140
return await self.client.delete(self.url)
141141

142-
async def truncate(self):
142+
async def truncate(self, **options):
143143
"""
144144
Removes all messages from the channel
145145
146+
:param options: the query options, check docs on https://getstream.io/chat/docs/python/channel_delete/?language=python#truncating-a-channel
146147
:return: The server response
147148
"""
148-
return await self.client.post(f"{self.url}/truncate")
149+
return await self.client.post(f"{self.url}/truncate", data=options)
149150

150151
async def add_members(self, members, message=None):
151152
"""

stream_chat/base/channel.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,10 +139,11 @@ def delete(self):
139139
pass
140140

141141
@abc.abstractmethod
142-
def truncate(self):
142+
def truncate(self, **options):
143143
"""
144144
Removes all messages from the channel
145145
146+
:param options: the query options, check docs on https://getstream.io/chat/docs/python/channel_delete/?language=python#truncating-a-channel
146147
:return: The server response
147148
"""
148149
pass

stream_chat/channel.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,13 +137,14 @@ def delete(self):
137137
"""
138138
return self.client.delete(self.url)
139139

140-
def truncate(self):
140+
def truncate(self, **options):
141141
"""
142142
Removes all messages from the channel
143143
144+
:param options: the query options, check docs on https://getstream.io/chat/docs/python/channel_delete/?language=python#truncating-a-channel
144145
:return: The server response
145146
"""
146-
return self.client.post(f"{self.url}/truncate")
147+
return self.client.post(f"{self.url}/truncate", data=options)
147148

148149
def add_members(self, members, message=None):
149150
"""

stream_chat/tests/async_chat/test_channel.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,17 @@ async def test_truncate(self, event_loop, channel):
9595
response = await channel.truncate()
9696
assert "channel" in response
9797

98+
@pytest.mark.asyncio
99+
async def test_truncate_with_options(self, event_loop, channel, random_user):
100+
response = await channel.truncate(
101+
skip_push=True,
102+
message={
103+
"text": "Truncating channel.",
104+
"user_id": random_user["id"],
105+
},
106+
)
107+
assert "channel" in response
108+
98109
@pytest.mark.asyncio
99110
async def test_add_members(self, event_loop, channel, random_user):
100111
response = await channel.remove_members([random_user["id"]])

stream_chat/tests/test_channel.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,16 @@ def test_truncate(self, channel):
8282
response = channel.truncate()
8383
assert "channel" in response
8484

85+
def test_truncate_with_options(self, channel, random_user):
86+
response = channel.truncate(
87+
skip_push=True,
88+
message={
89+
"text": "Truncating channel.",
90+
"user_id": random_user["id"],
91+
},
92+
)
93+
assert "channel" in response
94+
8595
def test_add_members(self, channel, random_user):
8696
response = channel.remove_members([random_user["id"]])
8797
assert len(response["members"]) == 0

0 commit comments

Comments
 (0)