Skip to content

Commit f7c471e

Browse files
committed
Added the metadata property to the Message model
1 parent 572964a commit f7c471e

File tree

3 files changed

+355
-5
lines changed

3 files changed

+355
-5
lines changed

examples/metadata_field_demo/metadata_example.py

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828

2929
# Import from local nylas package
3030
from nylas import Client
31-
from nylas.models.errors import NylasAPIError
31+
from nylas.models.errors import NylasApiError
3232

3333

3434
def get_env_or_exit(var_name: str, required: bool = True) -> Optional[str]:
@@ -59,14 +59,14 @@ def create_draft_with_metadata(
5959
print(f"✓ Created draft with ID: {draft.id}")
6060
print(f" Request ID: {request_id}")
6161
return draft.id
62-
except NylasAPIError as e:
62+
except NylasApiError as e:
6363
print(f"✗ Failed to create draft: {e}")
6464
sys.exit(1)
6565

6666

6767
def send_message_with_metadata(
6868
client: Client, grant_id: str, metadata: Dict[str, Any], recipient: str
69-
) -> None:
69+
) -> str:
7070
"""Send a message directly with metadata fields."""
7171
try:
7272
message_request = {
@@ -82,7 +82,9 @@ def send_message_with_metadata(
8282
)
8383
print(f"✓ Sent message with ID: {message.id}")
8484
print(f" Request ID: {request_id}")
85-
except NylasAPIError as e:
85+
86+
return message.id
87+
except NylasApiError as e:
8688
print(f"✗ Failed to send message: {e}")
8789
sys.exit(1)
8890

@@ -115,10 +117,21 @@ def main():
115117

116118
# Send a message with metadata
117119
print("\n2. Sending message with metadata...")
118-
send_message_with_metadata(client, grant_id, metadata, recipient)
120+
message_id = send_message_with_metadata(client, grant_id, metadata, recipient)
119121

120122
print("\nExample completed successfully!")
121123

124+
# Get the draft and message to demonstrate metadata retrieval
125+
draft = client.drafts.find(identifier=grant_id, draft_id=draft_id)
126+
message = client.messages.find(identifier=grant_id, message_id=message_id)
127+
128+
print("\nRetrieved Draft Metadata:")
129+
print("-------------------------")
130+
print(draft.data)
131+
132+
print("\nRetrieved Message Metadata:")
133+
print("---------------------------")
134+
print(message.data)
122135

123136
if __name__ == "__main__":
124137
main()

nylas/models/messages.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ class Message:
8080
date: Optional[int] = None
8181
schedule_id: Optional[str] = None
8282
send_at: Optional[int] = None
83+
metadata: Optional[Dict[str, Any]] = None
8384

8485

8586
# Need to use Functional typed dicts because "from" and "in" are Python

0 commit comments

Comments
 (0)