@@ -33,6 +33,52 @@ def get(self, id):
33
33
endpoint = '/messages/{}' .format (id )
34
34
return self .client .request ('get' , endpoint )
35
35
36
+ def set_status (self , id , status ):
37
+ """
38
+ Set a specific status on a message
39
+
40
+ Args:
41
+ id: The message ID
42
+ status: One of `seen`, `read`, `interacted`, or `archived`
43
+
44
+ Returns:
45
+ dict: Updated Message response from Knock
46
+ """
47
+
48
+ endpoint = '/messages/{}/{}' .format (id , status )
49
+ return self .client .request ('put' , endpoint )
50
+
51
+ def unset_status (self , id , status ):
52
+ """
53
+ Unset a specific status on a message
54
+
55
+ Args:
56
+ id: The message ID
57
+ status: One of `seen`, `read`, `interacted`, or `archived`
58
+
59
+ Returns:
60
+ dict: Updated Message response from Knock
61
+ """
62
+
63
+ endpoint = '/messages/{}/{}' .format (id , status )
64
+ return self .client .request ('delete' , endpoint )
65
+
66
+ def batch_set_status (self , message_ids , status ):
67
+ """
68
+ Batch update status for multiple messages
69
+
70
+ Args:
71
+ message_ids: List of message IDs to update
72
+ status: One of `seen`, `read`, `interacted`, `archived` or `unseen`, `unread`, `unarchived`
73
+
74
+ Returns:
75
+ dict: BulkOperation from Knock
76
+ """
77
+ data = {'message_ids' : message_ids }
78
+ endpoint = '/messages/batch/{}' .format (status )
79
+ return self .client .request ('post' , endpoint , payload = data )
80
+
81
+
36
82
def get_content (self , id ):
37
83
"""
38
84
Get a message's content by its id
0 commit comments