From 0053941a9c2a2816874dd4b37a40a71f4a40d251 Mon Sep 17 00:00:00 2001 From: yehuda-lev <94082865+yehuda-lev@users.noreply.github.com> Date: Sun, 10 Nov 2024 10:58:47 +0200 Subject: [PATCH] [client] fix `send_template` return type `SentMessage` --- pywa/client.py | 26 +++++++++++++++----------- pywa/types/base_update.py | 4 ++-- pywa_async/client.py | 18 ++++++++++-------- pywa_async/types/base_update.py | 2 +- 4 files changed, 28 insertions(+), 22 deletions(-) diff --git a/pywa/client.py b/pywa/client.py index 374255ca..f3a9c4b5 100644 --- a/pywa/client.py +++ b/pywa/client.py @@ -1912,7 +1912,7 @@ def send_template( reply_to_message_id: str | None = None, tracker: str | CallbackData | None = None, sender: str | int | None = None, - ) -> str: + ) -> SentMessage: """ Send a template to a WhatsApp user. @@ -1924,7 +1924,7 @@ def send_template( >>> wa = WhatsApp(...) >>> wa.send_template( ... to='1234567890', - ... template=Temp( + ... template=Temp( ... name='buy_new_iphone_x', ... language=Temp.Language.ENGLISH_US, ... header=Temp.TextValue(value='15'), @@ -1947,7 +1947,7 @@ def send_template( >>> wa = WhatsApp(...) >>> wa.send_template( ... to='1234567890', - ... template=Temp( + ... template=Temp( ... name='auth_with_otp', ... language=Temp.Language.ENGLISH_US, ... buttons=Temp.OTPButtonCode(code='123456'), @@ -1997,14 +1997,18 @@ def send_template( media_type=MessageType.VIDEO, phone_id=sender, ) - return self.api.send_message( - sender=sender, - to=str(to), - typ="template", - msg=template.to_dict(is_header_url=is_url), - reply_to_message_id=reply_to_message_id, - biz_opaque_callback_data=helpers.resolve_tracker_param(tracker), - )["messages"][0]["id"] + return SentMessage.from_sent_update( + client=self, + update=self.api.send_message( + sender=sender, + to=str(to), + typ="template", # TODO: Use MessageType.TEMPLATE when implemented + msg=template.to_dict(is_header_url=is_url), + reply_to_message_id=reply_to_message_id, + biz_opaque_callback_data=helpers.resolve_tracker_param(tracker), + ), + from_phone_id=sender, + ) def create_flow( self, diff --git a/pywa/types/base_update.py b/pywa/types/base_update.py index 5d8a759b..26b76933 100644 --- a/pywa/types/base_update.py +++ b/pywa/types/base_update.py @@ -776,7 +776,7 @@ def reply_template( template: Template, quote: bool = False, tracker: str | CallbackData | None = None, - ) -> str: + ) -> SentMessage: """ Reply to the message with a template. @@ -788,7 +788,7 @@ def reply_template( >>> wa = WhatsApp(...) >>> wa.send_template( ... to='1234567890', - ... template=Temp( + ... template=Temp( ... name='buy_new_iphone_x', ... language=Temp.Language.ENGLISH_US, ... header=Temp.TextValue(value='15'), diff --git a/pywa_async/client.py b/pywa_async/client.py index e0298633..b6e1bc6a 100644 --- a/pywa_async/client.py +++ b/pywa_async/client.py @@ -1689,7 +1689,7 @@ async def send_template( reply_to_message_id: str | None = None, tracker: str | CallbackData | None = None, sender: str | int | None = None, - ) -> str: + ) -> SentMessage: """ Send a template to a WhatsApp user. @@ -1701,7 +1701,7 @@ async def send_template( >>> wa = WhatsApp(...) >>> wa.send_template( ... to='1234567890', - ... template=Temp( + ... template=Temp( ... name='buy_new_iphone_x', ... language=Temp.Language.ENGLISH_US, ... header=Temp.TextValue(value='15'), @@ -1724,7 +1724,7 @@ async def send_template( >>> wa = WhatsApp(...) >>> wa.send_template( ... to='1234567890', - ... template=Temp( + ... template=Temp( ... name='auth_with_otp', ... language=Temp.Language.ENGLISH_US, ... buttons=Temp.OTPButtonCode(code='123456'), @@ -1771,16 +1771,18 @@ async def send_template( filename=None, phone_id=sender, ) - return ( - await self.api.send_message( + return SentMessage.from_sent_update( + client=self, + update=await self.api.send_message( sender=sender, to=str(to), - typ="template", + typ="template", # TODO use MessageType.TEMPLATE when implemented msg=template.to_dict(is_header_url=is_url), reply_to_message_id=reply_to_message_id, biz_opaque_callback_data=helpers.resolve_tracker_param(tracker), - ) - )["messages"][0]["id"] + ), + from_phone_id=sender, + ) async def create_flow( self, diff --git a/pywa_async/types/base_update.py b/pywa_async/types/base_update.py index 7f0b14d2..82bf413e 100644 --- a/pywa_async/types/base_update.py +++ b/pywa_async/types/base_update.py @@ -644,7 +644,7 @@ async def reply_template( >>> wa = WhatsApp(...) >>> wa.send_template( ... to='1234567890', - ... template=Temp( + ... template=Temp( ... name='buy_new_iphone_x', ... language=Temp.Language.ENGLISH_US, ... header=Temp.TextValue(value='15'),