Skip to content

Commit e2c5c23

Browse files
feat: remove filterTags from channel batch update API (#224)
* feat: remove filterTags from channel batch update API * Update stream_chat/async_chat/channel_batch_updater.py Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update stream_chat/channel_batch_updater.py Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * fix: attempt to fix tests * fix: lint fix --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent 1dc90b5 commit e2c5c23

File tree

7 files changed

+61
-82
lines changed

7 files changed

+61
-82
lines changed

stream_chat/async_chat/channel_batch_updater.py

Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -206,37 +206,3 @@ async def update_data(
206206
"data": data,
207207
}
208208
return await self.client.update_channels_batch(options)
209-
210-
async def add_filter_tags(
211-
self, filter: ChannelsBatchFilters, tags: List[str]
212-
) -> StreamResponse:
213-
"""
214-
Adds filter tags to channels matching the filter.
215-
216-
:param filter: The filter to match channels.
217-
:param tags: List of filter tags to add.
218-
:return: StreamResponse containing task_id.
219-
"""
220-
options: ChannelsBatchOptions = {
221-
"operation": "addFilterTags",
222-
"filter": filter,
223-
"filter_tags_update": tags,
224-
}
225-
return await self.client.update_channels_batch(options)
226-
227-
async def remove_filter_tags(
228-
self, filter: ChannelsBatchFilters, tags: List[str]
229-
) -> StreamResponse:
230-
"""
231-
Removes filter tags from channels matching the filter.
232-
233-
:param filter: The filter to match channels.
234-
:param tags: List of filter tags to remove.
235-
:return: StreamResponse containing task_id.
236-
"""
237-
options: ChannelsBatchOptions = {
238-
"operation": "removeFilterTags",
239-
"filter": filter,
240-
"filter_tags_update": tags,
241-
}
242-
return await self.client.update_channels_batch(options)

stream_chat/channel_batch_updater.py

Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -206,37 +206,3 @@ def update_data(
206206
"data": data,
207207
}
208208
return self.client.update_channels_batch(options)
209-
210-
def add_filter_tags(
211-
self, filter: ChannelsBatchFilters, tags: List[str]
212-
) -> StreamResponse:
213-
"""
214-
Adds filter tags to channels matching the filter.
215-
216-
:param filter: The filter to match channels.
217-
:param tags: List of filter tags to add.
218-
:return: StreamResponse containing task_id.
219-
"""
220-
options: ChannelsBatchOptions = {
221-
"operation": "addFilterTags",
222-
"filter": filter,
223-
"filter_tags_update": tags,
224-
}
225-
return self.client.update_channels_batch(options)
226-
227-
def remove_filter_tags(
228-
self, filter: ChannelsBatchFilters, tags: List[str]
229-
) -> StreamResponse:
230-
"""
231-
Removes filter tags from channels matching the filter.
232-
233-
:param filter: The filter to match channels.
234-
:param tags: List of filter tags to remove.
235-
:return: StreamResponse containing task_id.
236-
"""
237-
options: ChannelsBatchOptions = {
238-
"operation": "removeFilterTags",
239-
"filter": filter,
240-
"filter_tags_update": tags,
241-
}
242-
return self.client.update_channels_batch(options)

stream_chat/tests/async_chat/conftest.py

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,13 +93,35 @@ async def channel(client: StreamChatAsync, random_user: Dict):
9393

9494
@pytest.fixture(scope="function")
9595
async def command(client: StreamChatAsync):
96+
try:
97+
commands = await client.list_commands()
98+
for cmd in commands.get("commands", []):
99+
if cmd.get("name") not in (
100+
"giphy",
101+
"imgur",
102+
"flag",
103+
"ban",
104+
"unban",
105+
"mute",
106+
"unmute",
107+
):
108+
try:
109+
await client.delete_command(cmd["name"])
110+
except Exception:
111+
pass
112+
except Exception:
113+
pass
114+
96115
response = await client.create_command(
97116
dict(name=str(uuid.uuid4()), description="My command")
98117
)
99118

100119
yield response["command"]
101120

102-
await client.delete_command(response["command"]["name"])
121+
try:
122+
await client.delete_command(response["command"]["name"])
123+
except Exception:
124+
pass
103125

104126

105127
@pytest.fixture(scope="function")
@@ -121,6 +143,10 @@ async def fellowship_of_the_ring(client: StreamChatAsync):
121143
},
122144
{"id": "peregrin-took", "name": "Peregrin Took", "race": "Hobbit", "age": 28},
123145
]
146+
try:
147+
await client.restore_users([m["id"] for m in members])
148+
except Exception:
149+
pass
124150
await client.upsert_users(members)
125151
channel = client.channel(
126152
"team", "fellowship-of-the-ring", {"members": [m["id"] for m in members]}

stream_chat/tests/async_chat/test_client.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import asyncio
12
import json
23
import os
34
import sys
@@ -173,14 +174,14 @@ async def test_delete_users(self, client: StreamChatAsync, random_user: Dict):
173174
)
174175
assert "task_id" in response
175176

176-
for _ in range(20):
177+
for _ in range(60):
177178
response = await client.get_task(response["task_id"])
178179
if response["status"] == "completed" and response["result"][
179180
random_user["id"]
180181
] == {"status": "ok"}:
181182
return
182183

183-
time.sleep(1)
184+
await asyncio.sleep(1)
184185

185186
pytest.fail("task did not succeed")
186187

@@ -810,14 +811,14 @@ async def test_delete_channels(self, client: StreamChatAsync, channel: Channel):
810811
response = await client.delete_channels([channel.cid])
811812
assert "task_id" in response
812813

813-
for _ in range(20):
814+
for _ in range(60):
814815
response = await client.get_task(response["task_id"])
815816
if response["status"] == "completed" and response["result"][
816817
channel.cid
817818
] == {"status": "ok"}:
818819
return
819820

820-
time.sleep(1)
821+
await asyncio.sleep(1)
821822

822823
pytest.fail("task did not succeed")
823824

stream_chat/tests/conftest.py

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,13 +84,35 @@ def channel(client: StreamChat, random_user: Dict):
8484

8585
@pytest.fixture(scope="function")
8686
def command(client: StreamChat):
87+
try:
88+
commands = client.list_commands()
89+
for cmd in commands.get("commands", []):
90+
if cmd.get("name") not in (
91+
"giphy",
92+
"imgur",
93+
"flag",
94+
"ban",
95+
"unban",
96+
"mute",
97+
"unmute",
98+
):
99+
try:
100+
client.delete_command(cmd["name"])
101+
except Exception:
102+
pass
103+
except Exception:
104+
pass
105+
87106
response = client.create_command(
88107
dict(name=str(uuid.uuid4()), description="My command")
89108
)
90109

91110
yield response["command"]
92111

93-
client.delete_command(response["command"]["name"])
112+
try:
113+
client.delete_command(response["command"]["name"])
114+
except Exception:
115+
pass
94116

95117

96118
@pytest.fixture(scope="module")
@@ -111,6 +133,10 @@ def fellowship_of_the_ring(client: StreamChat):
111133
},
112134
{"id": "peregrin-took", "name": "Peregrin Took", "race": "Hobbit", "age": 28},
113135
]
136+
try:
137+
client.restore_users([m["id"] for m in members])
138+
except Exception:
139+
pass
114140
client.upsert_users(members)
115141
channel = client.channel(
116142
"team", "fellowship-of-the-ring", {"members": [m["id"] for m in members]}

stream_chat/tests/test_client.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ def test_delete_users(self, client: StreamChat, random_user: Dict):
229229
)
230230
assert "task_id" in response
231231

232-
for _ in range(20):
232+
for _ in range(60):
233233
response = client.get_task(response["task_id"])
234234
if response["status"] == "completed" and response["result"][
235235
random_user["id"]
@@ -818,7 +818,7 @@ def test_delete_channels(self, client: StreamChat, channel: Channel):
818818
response = client.delete_channels([channel.cid])
819819
assert "task_id" in response
820820

821-
for _ in range(20):
821+
for _ in range(60):
822822
response = client.get_task(response["task_id"])
823823
if response["status"] == "completed" and response["result"][
824824
channel.cid

stream_chat/types/channel_batch.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@
1818
"archive",
1919
"unarchive",
2020
"updateData",
21-
"addFilterTags",
22-
"removeFilterTags",
2321
]
2422

2523

@@ -66,12 +64,10 @@ class ChannelsBatchFilters(TypedDict, total=False):
6664
Parameters:
6765
cids: Filter by channel CIDs (can be a dict with operators like $in).
6866
types: Filter by channel types (can be a dict with operators like $in).
69-
filter_tags: Filter by filter tags (can be a dict with operators like $in).
7067
"""
7168

7269
cids: Optional[Any]
7370
types: Optional[Any]
74-
filter_tags: Optional[Any]
7571

7672

7773
class ChannelsBatchOptions(TypedDict, total=False):
@@ -83,11 +79,9 @@ class ChannelsBatchOptions(TypedDict, total=False):
8379
filter: The filter to match channels (required).
8480
members: List of members for member-related operations (optional).
8581
data: Channel data updates for updateData operation (optional).
86-
filter_tags_update: List of filter tags for filter tag operations (optional).
8782
"""
8883

8984
operation: ChannelBatchOperation
9085
filter: ChannelsBatchFilters
9186
members: Optional[List[ChannelBatchMemberRequest]]
9287
data: Optional[ChannelDataUpdate]
93-
filter_tags_update: Optional[List[str]]

0 commit comments

Comments
 (0)