Skip to content

Commit 5e03572

Browse files
author
Rafael Marinho
committed
feat(cha-769): add support to live locations
1 parent 6364604 commit 5e03572

File tree

3 files changed

+37
-0
lines changed

3 files changed

+37
-0
lines changed

stream_chat/async_chat/client.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
from stream_chat.types.base import SortParam
2323
from stream_chat.types.campaign import CampaignData, QueryCampaignsOptions
2424
from stream_chat.types.draft import QueryDraftsFilter, QueryDraftsOptions
25+
from stream_chat.types.shared_locations import SharedLocationsOptions
2526
from stream_chat.types.segment import (
2627
QuerySegmentsOptions,
2728
QuerySegmentTargetsOptions,
@@ -884,3 +885,16 @@ async def __aexit__(
884885
exc_tb: Optional[TracebackType],
885886
) -> None:
886887
await self.close()
888+
889+
async def get_user_locations(self, user_id: str, **options: Any) -> StreamResponse:
890+
params = {"user_id": user_id, **options}
891+
return await self.get("users/live_locations", params=params)
892+
893+
async def update_user_location(
894+
self, message_id: str, options: Optional[SharedLocationsOptions] = None,
895+
) -> StreamResponse:
896+
data = {"message_id": message_id, **options}
897+
if options is not None:
898+
data.update(cast(dict, options))
899+
return await self.put("users/live_locations", data=data)
900+

stream_chat/base/client.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from stream_chat.types.base import SortParam
1111
from stream_chat.types.campaign import CampaignData, QueryCampaignsOptions
1212
from stream_chat.types.draft import QueryDraftsFilter, QueryDraftsOptions
13+
from stream_chat.types.shared_locations import SharedLocationsOptions
1314
from stream_chat.types.segment import (
1415
QuerySegmentsOptions,
1516
QuerySegmentTargetsOptions,
@@ -1439,6 +1440,20 @@ def query_drafts(
14391440
) -> Union[StreamResponse, Awaitable[StreamResponse]]:
14401441
pass
14411442

1443+
@abc.abstractmethod
1444+
def get_user_locations(self, user_id: str, **options: Any) -> StreamResponse:
1445+
"""
1446+
Get the locations of a user.
1447+
"""
1448+
pass
1449+
1450+
@abc.abstractmethod
1451+
def update_user_location(self, message_id: str, options: Optional[SharedLocationsOptions] = None) -> StreamResponse:
1452+
"""
1453+
Update the location of a user.
1454+
"""
1455+
pass
1456+
14421457
#####################
14431458
# Private methods #
14441459
#####################
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from datetime import datetime
2+
from typing import Optional, TypedDict
3+
4+
5+
class SharedLocationsOptions(TypedDict):
6+
longitude: Optional[int]
7+
latitude: Optional[int]
8+
end_at: Optional[datetime]

0 commit comments

Comments
 (0)