MCPcopy Index your code
hub / github.com/O365/python-o365 / MessageFlag

Class MessageFlag

O365/message.py:98–212  ·  view source on GitHub ↗

A flag on a message

Source from the content-addressed store, hash-verified

96
97
98class MessageFlag(ApiComponent):
99 """ A flag on a message """
100
101 def __init__(self, parent, flag_data):
102 """ An flag on a message
103 Not available on Outlook Rest Api v2 (only in beta)
104
105 :param parent: parent of this
106 :type parent: Message
107 :param dict flag_data: flag data from cloud
108 """
109 super().__init__(protocol=parent.protocol,
110 main_resource=parent.main_resource)
111
112 self.__message = parent
113
114 self.__status = Flag.from_value(flag_data.get(self._cc('flagStatus'), 'notFlagged'))
115
116 start_obj = flag_data.get(self._cc('startDateTime'), {})
117 self.__start = self._parse_date_time_time_zone(start_obj)
118
119 due_date_obj = flag_data.get(self._cc('dueDateTime'), {})
120 self.__due_date = self._parse_date_time_time_zone(due_date_obj)
121
122 completed_date_obj = flag_data.get(self._cc('completedDateTime'), {})
123 self.__completed = self._parse_date_time_time_zone(completed_date_obj)
124
125 def __repr__(self):
126 return str(self.__status)
127
128 def __str__(self):
129 return self.__repr__()
130
131 def __bool__(self):
132 return self.is_flagged
133
134 def _track_changes(self):
135 """ Update the track_changes on the message to reflect a
136 needed update on this field """
137 self.__message._track_changes.add('flag')
138
139 @property
140 def status(self):
141 return self.__status
142
143 def set_flagged(self, *, start_date=None, due_date=None):
144 """ Sets this message as flagged
145 :param start_date: the start datetime of the followUp
146 :param due_date: the due datetime of the followUp
147 """
148 self.__status = Flag.Flagged
149 start_date = start_date or dt.datetime.now()
150 due_date = due_date or dt.datetime.now()
151 if start_date.tzinfo is None:
152 start_date = start_date.replace(tzinfo=self.protocol.timezone)
153 if due_date.tzinfo is None:
154 due_date = due_date.replace(tzinfo=self.protocol.timezone)
155 self.__start = start_date

Callers 1

__init__Method · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected