Добавил таймауты для API-запросов, уточнил парсинг тегов и типизацию аргументов
This commit is contained in:
@@ -8,14 +8,11 @@ from config import RedmineConfig, config
|
||||
from classes import Activity, ActivityType
|
||||
from enums import ActivityTypes
|
||||
from exceptions import InvalidToken
|
||||
from .constants import REQUEST_TIMEOUT
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
WORKSPACE_ID = config.WORKSPACE_ID
|
||||
USER_ID = config.USER_ID
|
||||
|
||||
|
||||
class RedmineAPI(RedmineConfig):
|
||||
"""API клиент для взаимодействия с Redmine.
|
||||
|
||||
@@ -52,7 +49,8 @@ class RedmineAPI(RedmineConfig):
|
||||
"comments": activity.description,
|
||||
"spent_on": activity.date_start.strftime(self.datetime_format)
|
||||
}
|
||||
}
|
||||
},
|
||||
timeout=REQUEST_TIMEOUT,
|
||||
)
|
||||
if config.is_debug or resp.ok:
|
||||
activity.is_tracked = True
|
||||
@@ -84,7 +82,11 @@ class RedmineAPI(RedmineConfig):
|
||||
|
||||
def get_time_entry_activities(self) -> list[ActivityTypes]:
|
||||
"""Получает виды Деятельности с сервера Redmine"""
|
||||
resp = requests.get(self.base_url + self.time_entry_activities, headers={"X-Redmine-API-KEY": self.token})
|
||||
resp = requests.get(
|
||||
self.base_url + self.time_entry_activities,
|
||||
headers={"X-Redmine-API-KEY": self.token},
|
||||
timeout=REQUEST_TIMEOUT,
|
||||
)
|
||||
logger.debug(resp.json())
|
||||
if resp.ok:
|
||||
return [
|
||||
@@ -95,7 +97,11 @@ class RedmineAPI(RedmineConfig):
|
||||
|
||||
def get_user(self):
|
||||
"""Проверяет токен и возвращает данные юзера"""
|
||||
resp = requests.get(self.base_url + self.my_account_url, headers={"X-Redmine-Api-Key": self.token})
|
||||
resp = requests.get(
|
||||
self.base_url + self.my_account_url,
|
||||
headers={"X-Redmine-Api-Key": self.token},
|
||||
timeout=REQUEST_TIMEOUT,
|
||||
)
|
||||
if not resp.ok:
|
||||
logger.error("Invalid Token for RedmineAPI")
|
||||
raise InvalidToken
|
||||
@@ -113,7 +119,7 @@ class RedmineAPI(RedmineConfig):
|
||||
resp = requests.get(
|
||||
self.base_url + self.issue.format(**{"id": issue_id}),
|
||||
headers={"X-Redmine-Api-Key": self.token},
|
||||
timeout=None
|
||||
timeout=REQUEST_TIMEOUT,
|
||||
)
|
||||
if not resp.ok:
|
||||
logger.error("Ошибка RedmineAPI")
|
||||
@@ -138,7 +144,7 @@ class RedmineAPI(RedmineConfig):
|
||||
self.base_url + self.issues,
|
||||
headers={"X-Redmine-Api-Key": self.token},
|
||||
params={"limit": 100, "offset": 100 * i, "status_id": "*"},
|
||||
timeout=None
|
||||
timeout=REQUEST_TIMEOUT,
|
||||
)
|
||||
if not resp.ok or not resp.json():
|
||||
logger.error("Ошибка RedmineAPI")
|
||||
|
||||
Reference in New Issue
Block a user