Returns the free/busy availability for a set of users in a given time frame :param list schedules: a list of strings (email addresses) :param datetime start: the start time frame to look for available space :param datetime end: the end time frame to look for availabl
(self, schedules, start, end, interval=60)
| 2058 | return self.event_constructor(parent=self, subject=subject) |
| 2059 | |
| 2060 | def get_availability(self, schedules, start, end, interval=60): |
| 2061 | """ |
| 2062 | Returns the free/busy availability for a set of users in a given time frame |
| 2063 | :param list schedules: a list of strings (email addresses) |
| 2064 | :param datetime start: the start time frame to look for available space |
| 2065 | :param datetime end: the end time frame to look for available space |
| 2066 | :param int interval: the number of minutes to look for space |
| 2067 | """ |
| 2068 | url = self.build_url(self._endpoints.get('get_availability')) |
| 2069 | |
| 2070 | data = { |
| 2071 | 'startTime': self._build_date_time_time_zone(start), |
| 2072 | 'endTime': self._build_date_time_time_zone(end), |
| 2073 | 'availabilityViewInterval': interval, |
| 2074 | 'schedules': schedules |
| 2075 | } |
| 2076 | |
| 2077 | response = self.con.post(url, data=data) |
| 2078 | if not response: |
| 2079 | return [] |
| 2080 | |
| 2081 | data = response.json().get('value', []) |
| 2082 | |
| 2083 | # transform dates and availabilityView |
| 2084 | availability_view_codes = { |
| 2085 | '0': 'free', |
| 2086 | '1': 'tentative', |
| 2087 | '2': 'busy', |
| 2088 | '3': 'out of office', |
| 2089 | '4': 'working elsewhere', |
| 2090 | } |
| 2091 | for schedule in data: |
| 2092 | a_view = schedule.get('availabilityView', '') |
| 2093 | schedule['availabilityView'] = [availability_view_codes.get(code, 'unkknown') for code in a_view] |
| 2094 | for item in schedule.get('scheduleItems', []): |
| 2095 | item['start'] = self._parse_date_time_time_zone(item.get('start')) |
| 2096 | item['end'] = self._parse_date_time_time_zone(item.get('end')) |
| 2097 | |
| 2098 | return data |
nothing calls this directly
no test coverage detected