Skip to content

Commit 182386d

Browse files
authored
feat: add options to add members api (#88)
1 parent 97e981c commit 182386d

File tree

6 files changed

+26
-9
lines changed

6 files changed

+26
-9
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ secrets.*sh
5757
.idea
5858

5959
.venv
60+
.python-version
6061
pip-selfcheck.json
6162
.idea
6263
.vscode

stream_chat/async_chat/channel.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -148,17 +148,17 @@ async def truncate(self, **options):
148148
"""
149149
return await self.client.post(f"{self.url}/truncate", data=options)
150150

151-
async def add_members(self, members, message=None):
151+
async def add_members(self, members, message=None, **options):
152152
"""
153153
Adds members to the channel
154154
155155
:param members: member objects to add
156156
:param message: An optional to show
157+
:param options: additional options such as hide_history
157158
:return:
158159
"""
159-
return await self.client.post(
160-
self.url, data={"add_members": members, "message": message}
161-
)
160+
payload = {"add_members": members, "message": message, **options}
161+
return await self.client.post(self.url, data=payload)
162162

163163
async def assign_roles(self, members, message=None):
164164
"""

stream_chat/base/channel.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,12 +149,13 @@ def truncate(self, **options):
149149
pass
150150

151151
@abc.abstractmethod
152-
def add_members(self, members, message=None):
152+
def add_members(self, members, message=None, **options):
153153
"""
154154
Adds members to the channel
155155
156156
:param members: member objects to add
157157
:param message: An optional to show
158+
:param options: additional options such as hide_history
158159
:return:
159160
"""
160161
pass

stream_chat/channel.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -146,17 +146,17 @@ def truncate(self, **options):
146146
"""
147147
return self.client.post(f"{self.url}/truncate", data=options)
148148

149-
def add_members(self, members, message=None):
149+
def add_members(self, members, message=None, **options):
150150
"""
151151
Adds members to the channel
152152
153153
:param members: member objects to add
154154
:param message: An optional to show
155+
:param options: additional options such as hide_history
155156
:return:
156157
"""
157-
return self.client.post(
158-
self.url, data={"add_members": members, "message": message}
159-
)
158+
payload = {"add_members": members, "message": message, **options}
159+
return self.client.post(self.url, data=payload)
160160

161161
def assign_roles(self, members, message=None):
162162
"""

stream_chat/tests/async_chat/test_channel.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,14 @@ async def test_add_members(self, channel, random_user):
115115
assert len(response["members"]) == 1
116116
assert not response["members"][0].get("is_moderator", False)
117117

118+
@pytest.mark.asyncio
119+
async def test_add_members_with_options(self, channel, random_user):
120+
response = await channel.remove_members([random_user["id"]])
121+
assert len(response["members"]) == 0
122+
123+
response = await channel.add_members([random_user["id"]], hide_history=True)
124+
assert len(response["members"]) == 1
125+
118126
@pytest.mark.asyncio
119127
async def test_invite_members(self, channel, random_user):
120128
response = await channel.remove_members([random_user["id"]])

stream_chat/tests/test_channel.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,13 @@ def test_add_members(self, channel, random_user):
100100
assert len(response["members"]) == 1
101101
assert not response["members"][0].get("is_moderator", False)
102102

103+
def test_add_members_with_additional_options(self, channel, random_user):
104+
response = channel.remove_members([random_user["id"]])
105+
assert len(response["members"]) == 0
106+
107+
response = channel.add_members([random_user["id"]], hide_history=True)
108+
assert len(response["members"]) == 1
109+
103110
def test_invite_members(self, channel, random_user):
104111
response = channel.remove_members([random_user["id"]])
105112
assert len(response["members"]) == 0

0 commit comments

Comments
 (0)