Update docs (statistic, zendesk_admin)
This commit is contained in:
parent
1114c916e9
commit
029b602f96
@ -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)
|
||||
|
@ -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')
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user