Skip to content

Commit 23d4086

Browse files
author
Daksh
committed
fix flag
1 parent b7f94f6 commit 23d4086

File tree

5 files changed

+40
-18
lines changed

5 files changed

+40
-18
lines changed

stream_chat/async_chat/client.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -356,10 +356,16 @@ async def update_message_partial(
356356
return await self.put(f"messages/{message_id}", data=data)
357357

358358
async def delete_message(
359-
self, message_id: str, deleted_by: str = None, **options: Any
359+
self, message_id: str, delete_for_me: bool = False, deleted_by: str = None, **options: Any
360360
) -> StreamResponse:
361+
if delete_for_me and not deleted_by:
362+
raise ValueError("deleted_by is required when delete_for_me is True")
363+
361364
data = options.copy()
362-
if deleted_by:
365+
if delete_for_me:
366+
data["delete_for_me"] = True
367+
data["deleted_by"] = deleted_by
368+
elif deleted_by:
363369
data["deleted_by"] = deleted_by
364370

365371
return await self.delete(f"messages/{message_id}", data)

stream_chat/base/client.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -558,16 +558,17 @@ def update_message_partial(
558558
"""
559559
pass
560560

561-
@abc.abstractmethod
561+
@abc.abstractmethod
562562
def delete_message(
563-
self, message_id: str, deleted_by: str = None, **options: Any
563+
self, message_id: str, delete_for_me: bool = False, deleted_by: str = None, **options: Any
564564
) -> Union[StreamResponse, Awaitable[StreamResponse]]:
565565
"""
566566
Deletes a message.
567-
567+
568568
Args:
569569
message_id: The ID of the message to delete
570-
deleted_by: The user ID who is deleting the message
570+
delete_for_me: If True, deletes the message only for the specified user
571+
deleted_by: The user ID who is deleting the message (required when delete_for_me is True)
571572
**options: Additional options to pass to the delete request
572573
"""
573574
pass

stream_chat/client.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -343,10 +343,16 @@ def update_message_partial(
343343
return self.put(f"messages/{message_id}", data=data)
344344

345345
def delete_message(
346-
self, message_id: str, deleted_by: str = None, **options: Any
346+
self, message_id: str, delete_for_me: bool = False, deleted_by: str = None, **options: Any
347347
) -> StreamResponse:
348+
if delete_for_me and not deleted_by:
349+
raise ValueError("deleted_by is required when delete_for_me is True")
350+
348351
data = options.copy()
349-
if deleted_by:
352+
if delete_for_me:
353+
data["delete_for_me"] = True
354+
data["deleted_by"] = deleted_by
355+
elif deleted_by:
350356
data["deleted_by"] = deleted_by
351357

352358
return self.delete(f"messages/{message_id}", data)

stream_chat/tests/async_chat/test_client.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -462,17 +462,21 @@ async def test_delete_message(
462462
)
463463
await client.delete_message(msg_id, hard=True)
464464

465-
async def test_delete_message_with_deleted_by(
465+
async def test_delete_message_for_me(
466466
self, client: StreamChatAsync, channel: Channel, random_user: Dict
467467
):
468-
"""Test deleting a message with deleted_by parameter"""
468+
"""Test deleting a message for a specific user (delete for me functionality)"""
469469
msg_id = str(uuid.uuid4())
470470
await channel.send_message(
471471
{"id": msg_id, "text": "helloworld"}, random_user["id"]
472472
)
473473

474-
# Delete message with deleted_by parameter
475-
response = await client.delete_message(msg_id, deleted_by=random_user["id"])
474+
# Delete message for the user
475+
response = await client.delete_message(
476+
msg_id,
477+
delete_for_me=True,
478+
deleted_by=random_user["id"]
479+
)
476480

477481
# Verify the request succeeded
478482
assert response.is_ok()

stream_chat/tests/test_client.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -509,15 +509,19 @@ def test_delete_message(self, client: StreamChat, channel, random_user: Dict):
509509
channel.send_message({"id": msg_id, "text": "helloworld"}, random_user["id"])
510510
client.delete_message(msg_id, hard=True)
511511

512-
def test_delete_message_with_deleted_by(
512+
def test_delete_message_for_me(
513513
self, client: StreamChat, channel, random_user: Dict
514514
):
515-
"""Test deleting a message with deleted_by parameter"""
515+
"""Test deleting a message for a specific user (delete for me functionality)"""
516516
msg_id = str(uuid.uuid4())
517517
channel.send_message({"id": msg_id, "text": "helloworld"}, random_user["id"])
518518

519-
# Delete message with deleted_by parameter
520-
response = client.delete_message(msg_id, deleted_by=random_user["id"])
519+
# Delete message for the user
520+
response = client.delete_message(
521+
msg_id,
522+
delete_for_me=True,
523+
deleted_by=random_user["id"]
524+
)
521525

522526
# Verify the request succeeded
523527
assert response.is_ok()
@@ -699,9 +703,10 @@ def test_query_channels_members_in(
699703
def test_create_blocklist(self, client: StreamChat):
700704
client.create_blocklist(name="Foo", words=["fudge", "heck"], type="word")
701705

702-
def test_list_blocklists(self, client: StreamChat):
706+
def test test_list_blocklists(self, client: StreamChat):
703707
response = client.list_blocklists()
704-
assert len(response["blocklists"]) == 2
708+
# There are now 2 default blocklists + the "Foo" blocklist created by test_create_blocklist
709+
assert len(response["blocklists"]) >= 3
705710
blocklist_names = {blocklist["name"] for blocklist in response["blocklists"]}
706711
assert "Foo" in blocklist_names
707712

0 commit comments

Comments
 (0)