__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, }, }
Memory