__all__ = [
'MeetingCancellation',
]
import json
from .. import constants
from ..enums import RecurPatternType, ResponseStatus
from .meeting_related import MeetingRelated
# The documentation for this only specifies restrictions on existing properties,
# so we just mostly leave this alone.
class MeetingCancellation(MeetingRelated):
"""
Class for a Meeting Cancellation object.
"""
def getJson(self) -> str:
meetingStatusString = {
ResponseStatus.NONE: None,
ResponseStatus.ORGANIZED: 'Meeting organizer',
ResponseStatus.TENTATIVE: 'Tentatively accepted',
ResponseStatus.ACCEPTED: 'Accepted',
ResponseStatus.DECLINED: 'Declined',
ResponseStatus.NOT_RESPONDED: 'Not yet responded',
}[self.responseStatus]
# Get the recurrence string.
recur = '(none)'
if self.appointmentRecur:
recur = {
RecurPatternType.DAY: 'Daily',
RecurPatternType.WEEK: 'Weekly',
RecurPatternType.MONTH: 'Monthly',
RecurPatternType.MONTH_NTH: 'Monthly',
RecurPatternType.MONTH_END: 'Monthly',
RecurPatternType.HJ_MONTH: 'Monthly',
RecurPatternType.HJ_MONTH_NTH: 'Monthly',
RecurPatternType.HJ_MONTH_END: 'Monthly',
}[self.appointmentRecur.patternType]
return json.dumps({
'recurrence': recur,
'recurrencePattern': self.recurrencePattern,
'body': self.body,
'meetingStatus': meetingStatusString,
'organizer': self.organizer,
'requiredAttendees': self.to,
'optionalAttendees': self.cc,
'resources': self.bcc,
'start': self.startDate.__format__(self.datetimeFormat) if self.endDate else None,
'end': self.endDate.__format__(self.datetimeFormat) if self.endDate else None,
})
@property
def headerFormatProperties(self) -> constants.HEADER_FORMAT_TYPE:
meetingStatusString = {
ResponseStatus.NONE: None,
ResponseStatus.ORGANIZED: 'Meeting organizer',
ResponseStatus.TENTATIVE: 'Tentatively accepted',
ResponseStatus.ACCEPTED: 'Accepted',
ResponseStatus.DECLINED: 'Declined',
ResponseStatus.NOT_RESPONDED: 'Not yet responded',
}[self.responseStatus]
# Get the recurrence string.
recur = '(none)'
if self.appointmentRecur:
recur = {
RecurPatternType.DAY: 'Daily',
RecurPatternType.WEEK: 'Weekly',
RecurPatternType.MONTH: 'Monthly',
RecurPatternType.MONTH_NTH: 'Monthly',
RecurPatternType.MONTH_END: 'Monthly',
RecurPatternType.HJ_MONTH: 'Monthly',
RecurPatternType.HJ_MONTH_NTH: 'Monthly',
RecurPatternType.HJ_MONTH_END: 'Monthly',
}[self.appointmentRecur.patternType]
return {
'-main info-': {
'Subject': self.subject,
'Location': self.location,
},
'-date-': {
'Start': self.startDate.__format__(self.datetimeFormat) if self.startDate else None,
'End': self.endDate.__format__(self.datetimeFormat) if self.endDate else None,
'Show Time As': 'Free',
},
'-recurrence-': {
'Recurrance': recur,
'Recurrence Pattern': self.recurrencePattern,
},
'-status-': {
'Meeting Status': meetingStatusString,
},
'-attendees-': {
'Organizer': self.organizer,
'Required Attendees': self.to,
'Optional Attendees': self.cc,
'Resources': self.bcc,
},
'-importance-': {
'Importance': self.importanceString,
},
}