You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Добавить новый метод в репозиторий, который снизит нагрузку к БД для последующего представления в апи
HOW TO DO
Функций change_schema_response, которая используется в async def perform_changed_schema - служащая для изменения отражения в апи ответа моделей (пользователя по email, тех.процессов по их имени, а не коду и т.п.) делает множественные запросы к БД, чтобы получить пользователя. ЭТО НЕПРАВИЛЬНО
Нужно избавиться от множественных запросов и брать инфу о пользователе из одного запроса
Переделать (дополнить лучше) функцию get_all репозитория задач и простоев, чтобы наряду со списком всех моделей получать и информацию о пользователях, которую уже можно было бы в дальнейшем использовать.
async def change_schema_response(self, suspension: Suspension, user: User = None) -> dict:
"""Изменяет и добавляет поля в словарь в целях наглядного представления в ответе api."""
if user is None:
user: User = await self._users_repository.get(suspension.user_id) # todo очень затратно!
await log.ainfo("{}".format(USER_NOT_PROVIDED), user=user)
suspension_to_dict = suspension.__dict__
suspension_to_dict["user_email"] = user.email
suspension_to_dict["business_process"] = TechProcess(str(suspension.tech_process)).name
suspension_to_dict["extra_files"] = []
return suspension_to_dict
The text was updated successfully, but these errors were encountered:
ArtemBalandin81
changed the title
Добавить метод get_all_with_users
Добавить метод get_all_with_users (change_schema_response недопустимо затратный)
Nov 22, 2024
WHY
Добавить новый метод в репозиторий, который снизит нагрузку к БД для последующего представления в апи
HOW TO DO
Функций
change_schema_response
, которая используется вasync def perform_changed_schema
- служащая для изменения отражения в апи ответа моделей (пользователя по email, тех.процессов по их имени, а не коду и т.п.) делает множественные запросы к БД, чтобы получить пользователя. ЭТО НЕПРАВИЛЬНОThe text was updated successfully, but these errors were encountered: