From 029b602f96c26e2962a5a02b1c2c429a7cc80701 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D1=82=D0=B5=D0=BF=D0=B0=D0=BD=D0=B5=D0=BD=D0=BA?= =?UTF-8?q?=D0=BE=20=D0=9E=D0=BB=D1=8C=D0=B3=D0=B0?= Date: Thu, 20 May 2021 17:45:25 +0300 Subject: [PATCH] Update docs (statistic, zendesk_admin) --- main/statistic_data.py | 30 +++++++++++++++++++++--------- main/zendesk_admin.py | 7 +++---- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/main/statistic_data.py b/main/statistic_data.py index f569c68..e5f4fdc 100644 --- a/main/statistic_data.py +++ b/main/statistic_data.py @@ -172,8 +172,8 @@ class StatisticData: """ Функция возвращает логи в диапазоне дат start_date - end_date для пользователя с указанным email. - :return: Данные о смене статусов пользователя. Если пользователь не найден или - интервал времени некорректен - ошибку. + :return: Данные о смене статусов пользователя. + Если пользователь не найден или интервал времени некорректен - ошибку. """ if not self.check_time(): self.errors += ['Конец диапазона должен быть позже начала диапазона и раньше текущего времени'] @@ -208,9 +208,12 @@ class StatisticData: if self.data[log_index].new_role == ROLES['engineer']: self.engineer_logic(log_index) - def engineer_logic(self, log_index): + def engineer_logic(self, log_index: int) -> None: """ - Функция обрабатывает основную часть работы инженера + Функция обрабатывает подсчета времени работы инженера. + + :param log_index: Индекс текущего лога + :return: Дополняет статистику работы инженера временем между текущим и последующим логом """ current_log, next_log = self.data[log_index], self.data[log_index + 1] if current_log.change_time.date() != next_log.change_time.date(): @@ -222,9 +225,12 @@ class StatisticData: elapsed_time = next_log.change_time - current_log.change_time self.statistic[current_log.change_time.date()] += elapsed_time.total_seconds() - def post_engineer_logic(self, last_log): + def post_engineer_logic(self, last_log: RoleChangeLogs) -> None: """ - Функция обрабатывает случай, когда нам изветсно что инженер работал и после диапазона + Функция обрабатывает случай, когда пользователя назначили инженером в последнем логе. + + :param last_log: Последний лог изменения роли, в результате которого пользователь назначен инженером. + :return: Дополняет статистику работы """ self.fill_daterange(last_log.change_time.date() + timedelta(days=1), self.end_date + timedelta(days=1)) if last_log.change_time.date() == timezone.now().date(): @@ -237,9 +243,12 @@ class StatisticData: if self.end_date == timezone.now().date(): self.statistic[self.end_date] = get_timedelta(None, timezone.now().time()).total_seconds() - def prev_engineer_logic(self, first_log): + def prev_engineer_logic(self, first_log: RoleChangeLogs) -> None: """ - Функция обрабатывает случай, когда нам изветсно что инженер начал работу до диапазона + Функция обрабатывает случай, когда пользователь в первом логе диапазона был назначен легким агентом. + + :param first_log_log: Первый лог в диапазоне, в результате которого пользователь назначен легким агентом. + :return: Дополняет статистику работы """ self.fill_daterange(max(get_user_model().objects.get(email=self.email).date_joined.date(), self.start_date), first_log.change_time.date()) @@ -258,7 +267,10 @@ class StatisticData: def clear_statistic(self) -> dict: """ - Функция осуществляет обновление всех дней. + Функция осуществляет очищает статистику и устанавливает время в диапазоне start_date - end_date в количестве + 24*3600 секунд. + + :return: Обновленная статистика """ self.statistic.clear() self.fill_daterange(self.start_date, self.end_date + timedelta(days=1), 0) diff --git a/main/zendesk_admin.py b/main/zendesk_admin.py index c6a383f..a979ca4 100644 --- a/main/zendesk_admin.py +++ b/main/zendesk_admin.py @@ -32,7 +32,7 @@ class ZendeskAdmin: self.buffer_group_id= self.get_group(ZENDESK_GROUPS['buffer']).id self.solved_tickets_user_id = self.get_user(SOLVED_TICKETS_EMAIL).id - def update_user(self, user: ZenpyUser) -> bool: + def update_user(self, user: ZenpyUser) -> None: """ Функция сохраняет изменение пользователя в Zendesk. @@ -40,7 +40,7 @@ class ZendeskAdmin: """ self.admin.users.update(user) - def update_tickets(self, tickets: List[ZenpyTicket]): + def update_tickets(self, tickets: List[ZenpyTicket]) -> None: """ Функция сохраняет изменение тикетов в Zendesk. @@ -79,7 +79,7 @@ class ZendeskAdmin: return group return None - def get_user_org(self, email: str) -> str: + def get_user_org(self, email: str) -> Optional[str]: """ Функция возвращает организацию, к которой относится пользователь по его email. @@ -96,7 +96,6 @@ class ZendeskAdmin: :raise: :class:`ValueError`: исключение, вызываемое если email не введен в env :raise: :class:`APIException`: исключение, вызываемое если пользователя с таким email не существует в Zendesk """ - if self.credentials.get('email') is None: raise ValueError('access_controller email not in env')