Skip to content

Commit 0b2a8aa

Browse files
authored
feat(upser_user): deprecated update_user in favor of upsert_user (#109)
1 parent 3b582f5 commit 0b2a8aa

File tree

4 files changed

+52
-6
lines changed

4 files changed

+52
-6
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ from stream_chat import StreamChat
4747
chat = StreamChat(api_key="STREAM_KEY", api_secret="STREAM_SECRET")
4848

4949
# add a user
50-
chat.update_user({"id": "chuck", "name": "Chuck"})
50+
chat.upsert_user({"id": "chuck", "name": "Chuck"})
5151

5252
# create a channel about kung-fu
5353
channel = chat.channel("messaging", "kung-fu")
@@ -83,7 +83,7 @@ from stream_chat import StreamChatAsync
8383
async def main():
8484
async with StreamChatAsync(api_key="STREAM_KEY", api_secret="STREAM_SECRET") as chat:
8585
# add a user
86-
await chat.update_user({"id": "chuck", "name": "Chuck"})
86+
await chat.upsert_user({"id": "chuck", "name": "Chuck"})
8787

8888
# create a channel about kung-fu
8989
channel = chat.channel("messaging", "kung-fu")

stream_chat/async_chat/client.py

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import datetime
22
import json
3+
import warnings
34
from types import TracebackType
45
from typing import (
56
Any,
@@ -127,10 +128,26 @@ async def get_app_settings(self) -> StreamResponse:
127128
return await self.get("app")
128129

129130
async def update_users(self, users: List[Dict]) -> StreamResponse:
130-
return await self.post("users", data={"users": {u["id"]: u for u in users}})
131+
warnings.warn(
132+
"This method is deprecated. Use upsert_users instead.",
133+
DeprecationWarning,
134+
stacklevel=2,
135+
)
136+
return await self.upsert_users(users)
131137

132138
async def update_user(self, user: Dict) -> StreamResponse:
133-
return await self.update_users([user])
139+
warnings.warn(
140+
"This method is deprecated. Use upsert_user instead.",
141+
DeprecationWarning,
142+
stacklevel=2,
143+
)
144+
return await self.upsert_user(user)
145+
146+
async def upsert_users(self, users: List[Dict]) -> StreamResponse:
147+
return await self.post("users", data={"users": {u["id"]: u for u in users}})
148+
149+
async def upsert_user(self, user: Dict) -> StreamResponse:
150+
return await self.upsert_users([user])
134151

135152
async def update_users_partial(self, updates: List[Dict]) -> StreamResponse:
136153
return await self.patch("users", data={"users": updates})

stream_chat/base/client.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,18 @@ def update_user(
128128
) -> Union[StreamResponse, Awaitable[StreamResponse]]:
129129
pass
130130

131+
@abc.abstractmethod
132+
def upsert_users(
133+
self, users: List[Dict]
134+
) -> Union[StreamResponse, Awaitable[StreamResponse]]:
135+
pass
136+
137+
@abc.abstractmethod
138+
def upsert_user(
139+
self, user: Dict
140+
) -> Union[StreamResponse, Awaitable[StreamResponse]]:
141+
pass
142+
131143
@abc.abstractmethod
132144
def update_users_partial(
133145
self, updates: List[Dict]

stream_chat/client.py

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import datetime
22
import json
3+
import warnings
34
from typing import Any, Callable, Dict, Iterable, List, Union
45
from urllib.parse import urlparse
56
from urllib.request import Request, urlopen
@@ -116,10 +117,26 @@ def set_guest_user(self, guest_user: Dict) -> StreamResponse:
116117
return self.post("guest", data=dict(user=guest_user))
117118

118119
def update_users(self, users: List[Dict]) -> StreamResponse:
119-
return self.post("users", data={"users": {u["id"]: u for u in users}})
120+
warnings.warn(
121+
"This method is deprecated. Use upsert_users instead.",
122+
DeprecationWarning,
123+
stacklevel=2,
124+
)
125+
return self.upsert_users(users)
120126

121127
def update_user(self, user: Dict) -> StreamResponse:
122-
return self.update_users([user])
128+
warnings.warn(
129+
"This method is deprecated. Use upsert_user instead.",
130+
DeprecationWarning,
131+
stacklevel=2,
132+
)
133+
return self.upsert_user(user)
134+
135+
def upsert_users(self, users: List[Dict]) -> StreamResponse:
136+
return self.post("users", data={"users": {u["id"]: u for u in users}})
137+
138+
def upsert_user(self, user: Dict) -> StreamResponse:
139+
return self.upsert_users([user])
123140

124141
def update_users_partial(self, updates: List[Dict]) -> StreamResponse:
125142
return self.patch("users", data={"users": updates})

0 commit comments

Comments
 (0)