Skip to content

Commit bb3219c

Browse files
authored
Merge pull request #77 from GetStream/query-participants-endpoint
Add query participants endpoint
2 parents 0fe0d10 + ada2647 commit bb3219c

File tree

7 files changed

+834
-772
lines changed

7 files changed

+834
-772
lines changed

generate.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,4 @@ set -ex
2020
( cd $SOURCE_PATH ; make openapi ; go run ./cmd/chat-manager openapi generate-client --language python --spec ./releases/v2/serverside-api.yaml --output ../stream-py/getstream/ )
2121

2222
# lint generated code with ruff
23-
poetry run ruff format getstream/ tests/
23+
uv run ruff format getstream/ tests/

getstream/chat/rest_client.py

Lines changed: 89 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -26,24 +26,40 @@ def query_campaigns(
2626
limit: Optional[int] = None,
2727
next: Optional[str] = None,
2828
prev: Optional[str] = None,
29+
user_limit: Optional[int] = None,
2930
sort: Optional[List[SortParamRequest]] = None,
3031
filter: Optional[Dict[str, object]] = None,
3132
) -> StreamResponse[QueryCampaignsResponse]:
3233
json = build_body_dict(
33-
limit=limit, next=next, prev=prev, sort=sort, filter=filter
34+
limit=limit,
35+
next=next,
36+
prev=prev,
37+
user_limit=user_limit,
38+
sort=sort,
39+
filter=filter,
3440
)
3541

3642
return self.post(
3743
"/api/v2/chat/campaigns/query", QueryCampaignsResponse, json=json
3844
)
3945

40-
def get_campaign(self, id: str) -> StreamResponse[GetCampaignResponse]:
46+
def get_campaign(
47+
self,
48+
id: str,
49+
prev: Optional[str] = None,
50+
next: Optional[str] = None,
51+
limit: Optional[int] = None,
52+
) -> StreamResponse[GetCampaignResponse]:
53+
query_params = build_query_param(prev=prev, next=next, limit=limit)
4154
path_params = {
4255
"id": id,
4356
}
4457

4558
return self.get(
46-
"/api/v2/chat/campaigns/{id}", GetCampaignResponse, path_params=path_params
59+
"/api/v2/chat/campaigns/{id}",
60+
GetCampaignResponse,
61+
query_params=query_params,
62+
path_params=path_params,
4763
)
4864

4965
def start_campaign(
@@ -245,6 +261,46 @@ def update_channel(
245261
json=json,
246262
)
247263

264+
def delete_draft(
265+
self,
266+
type: str,
267+
id: str,
268+
parent_id: Optional[str] = None,
269+
user_id: Optional[str] = None,
270+
) -> StreamResponse[Response]:
271+
query_params = build_query_param(parent_id=parent_id, user_id=user_id)
272+
path_params = {
273+
"type": type,
274+
"id": id,
275+
}
276+
277+
return self.delete(
278+
"/api/v2/chat/channels/{type}/{id}/draft",
279+
Response,
280+
query_params=query_params,
281+
path_params=path_params,
282+
)
283+
284+
def get_draft(
285+
self,
286+
type: str,
287+
id: str,
288+
parent_id: Optional[str] = None,
289+
user_id: Optional[str] = None,
290+
) -> StreamResponse[GetDraftResponse]:
291+
query_params = build_query_param(parent_id=parent_id, user_id=user_id)
292+
path_params = {
293+
"type": type,
294+
"id": id,
295+
}
296+
297+
return self.get(
298+
"/api/v2/chat/channels/{type}/{id}/draft",
299+
GetDraftResponse,
300+
query_params=query_params,
301+
path_params=path_params,
302+
)
303+
248304
def send_event(
249305
self, type: str, id: str, event: EventRequest
250306
) -> StreamResponse[EventResponse]:
@@ -357,22 +413,23 @@ def upload_image(
357413

358414
def update_member_partial(
359415
self,
360-
user_id: str,
361416
type: str,
362417
id: str,
418+
user_id: Optional[str] = None,
363419
unset: Optional[List[str]] = None,
364420
set: Optional[Dict[str, object]] = None,
365421
) -> StreamResponse[UpdateMemberPartialResponse]:
422+
query_params = build_query_param(user_id=user_id)
366423
path_params = {
367-
"user_id": user_id,
368424
"type": type,
369425
"id": id,
370426
}
371427
json = build_body_dict(unset=unset, set=set)
372428

373429
return self.patch(
374-
"/api/v2/chat/channels/{type}/{id}/member/{user_id}",
430+
"/api/v2/chat/channels/{type}/{id}/member",
375431
UpdateMemberPartialResponse,
432+
query_params=query_params,
376433
path_params=path_params,
377434
json=json,
378435
)
@@ -773,6 +830,28 @@ def update_command(
773830
json=json,
774831
)
775832

833+
def query_drafts(
834+
self,
835+
limit: Optional[int] = None,
836+
next: Optional[str] = None,
837+
prev: Optional[str] = None,
838+
user_id: Optional[str] = None,
839+
sort: Optional[List[SortParamRequest]] = None,
840+
filter: Optional[Dict[str, object]] = None,
841+
user: Optional[UserRequest] = None,
842+
) -> StreamResponse[QueryDraftsResponse]:
843+
json = build_body_dict(
844+
limit=limit,
845+
next=next,
846+
prev=prev,
847+
user_id=user_id,
848+
sort=sort,
849+
filter=filter,
850+
user=user,
851+
)
852+
853+
return self.post("/api/v2/chat/drafts/query", QueryDraftsResponse, json=json)
854+
776855
def export_channels(
777856
self,
778857
channels: List[ChannelExport],
@@ -795,19 +874,6 @@ def export_channels(
795874
"/api/v2/chat/export_channels", ExportChannelsResponse, json=json
796875
)
797876

798-
def get_export_channels_status(
799-
self, id: str
800-
) -> StreamResponse[GetExportChannelsStatusResponse]:
801-
path_params = {
802-
"id": id,
803-
}
804-
805-
return self.get(
806-
"/api/v2/chat/export_channels/{id}",
807-
GetExportChannelsStatusResponse,
808-
path_params=path_params,
809-
)
810-
811877
def query_members(
812878
self, payload: Optional[QueryMembersPayload] = None
813879
) -> StreamResponse[MembersResponse]:
@@ -1542,6 +1608,8 @@ def query_threads(
15421608
prev: Optional[str] = None,
15431609
reply_limit: Optional[int] = None,
15441610
user_id: Optional[str] = None,
1611+
sort: Optional[List[SortParamRequest]] = None,
1612+
filter: Optional[Dict[str, object]] = None,
15451613
user: Optional[UserRequest] = None,
15461614
) -> StreamResponse[QueryThreadsResponse]:
15471615
json = build_body_dict(
@@ -1552,6 +1620,8 @@ def query_threads(
15521620
prev=prev,
15531621
reply_limit=reply_limit,
15541622
user_id=user_id,
1623+
sort=sort,
1624+
filter=filter,
15551625
user=user,
15561626
)
15571627

getstream/common/rest_client.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ def update_app(
3737
enforce_unique_usernames: Optional[str] = None,
3838
feeds_moderation_enabled: Optional[bool] = None,
3939
feeds_v2_region: Optional[str] = None,
40+
guest_user_creation_disabled: Optional[bool] = None,
4041
image_moderation_enabled: Optional[bool] = None,
4142
migrate_permissions_to_v2: Optional[bool] = None,
4243
moderation_enabled: Optional[bool] = None,
@@ -81,6 +82,7 @@ def update_app(
8182
enforce_unique_usernames=enforce_unique_usernames,
8283
feeds_moderation_enabled=feeds_moderation_enabled,
8384
feeds_v2_region=feeds_v2_region,
85+
guest_user_creation_disabled=guest_user_creation_disabled,
8486
image_moderation_enabled=image_moderation_enabled,
8587
migrate_permissions_to_v2=migrate_permissions_to_v2,
8688
moderation_enabled=moderation_enabled,

0 commit comments

Comments
 (0)