Skip to content

Conversation

@dangannn
Copy link
Collaborator

Краткое название

Добавлен query arg для выставления максимального количества skills в ручке users

Описание изменений

Опишите изменения, которые вы внесли в код. Не забывайте указывать номер задачи или ссылку на тикет.

Тестирование

Опишите, как тестировали свои изменения. Например, какие тесты проходят, а какие нет.

Проверка кода

Опишите, как проверить ваш код.

Дополнительная информация

Здесь вы можете добавить какую-либо дополнительную информацию о своих изменениях.

filterset_class = UserFilter

def list(self, request, *args, **kwargs):
max_skills = request.query_params.get("max_skills", None)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

это нужно прокинуть в контекст сериалайзера, чтобы мы из БД тянули скиллы с лимитом, а не вытаскивали ВСЕ и потом обрезали вывод


def list(self, request, *args, **kwargs):
max_skills = request.query_params.get("max_skills", None)
if max_skills is not None:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

валидацию квери параметров может сделать через сериалайзер? то, что вьюшка занимается валидацией квери параметров мне кажется не ок

Comment on lines +116 to +119
for user_data in response.data.get("results", []):
if "skills" in user_data:
user_data["skills"] = user_data["skills"][:max_skills]

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

это должно быть учтено при походе в БД, точно не стоит обрезать кусок ответа во вьюшке)

Comment on lines +288 to +302
max_skills = request.query_params.get("max_skills", None)
if max_skills is not None:
try:
max_skills = int(max_skills)
if max_skills < 0:
return Response(
{"error": "max_skills must be a positive integer"},
status=status.HTTP_400_BAD_REQUEST,
)
except ValueError:
return Response(
{"error": "max_skills must be an integer"},
status=status.HTTP_400_BAD_REQUEST,
)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

лютая копипаста, точно нужно убрать это отсюда

max_skills = int(max_skills)
if max_skills < 0:
return Response(
{"error": "max_skills must be a positive integer"},
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

да зачем тут ошибку отдавать, давай просто считать что max_skills = 0 и не будем вообще эти скиллы получать из бд

filterset_class = UserFilter

def list(self, request, *args, **kwargs):
max_skills = request.query_params.get("max_skills", None)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

давай тут вместо None какой-нибудь разумный дефолт бахнем? сейчас фронт все равно не передает этот квери параметр и после мержа этого ПРа он продолжит забирать кучу лишних данных, а с дефолтом мы этот размер ограничим

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants