Skip to content

Controllers films users#1

Merged
CrodiYa merged 9 commits intomainfrom
controllers-films-users
Oct 11, 2025
Merged

Controllers films users#1
CrodiYa merged 9 commits intomainfrom
controllers-films-users

Conversation

@CrodiYa
Copy link
Owner

@CrodiYa CrodiYa commented Oct 11, 2025

Основное:

  • модели User, Film с валидацией аннотациями
  • Контроллеры для моделей;
    -- возвращает все фильмы/юзеры
    -- добавляет фильм/юзера
    -- обновляет фильм/юзера - эндпоинты /films/ или /users/ id передается через json

Валидация:
Для валидации логина и дат созданы кастомные аннотации и валидаторы соответственно

Для User

  • Логин не может быть пустым или содержать пробелы
  • Почта не может быть пустой и должна быть правильного формата
  • День рождения не может быть в будущем (может быть сегодня)

Для Film

  • Имя не может быть пустым
  • Описание не может быть больше 200 символов
  • Дата релиза не раньше 1985-01-28
  • Длительность - больше нуля

Исключения:

  • ValidationException - кастомное, используется при отсутствии айди при PUT
  • NotFoundException - если элемент не найден
  • GlobalExceptionHandler - обрабатывает некоторые исключения и отправляет соответствующие ответы с ApiError
  • ApiError - кастомный формат для сообщений об ошибках

Логирование:

  • Запись о вызове hhtp-методов(INFO)
  • Запись об обработке исключения (WARN)
  • Логи записываются в файл (я увлекся)
  • В файл запись об ошибках подробнее чем в консоль
  • Для тестов запись логов в консоль отключена

Тесты:

  • Проверка валидаторов
  • Проверка моделей на валидацию
  • Проверка контроллеров - минимально, вероятно контроллеры надо тестировать не так, но способы, которые я нашел чересчур сложные.

@CrodiYa CrodiYa merged commit b361055 into main Oct 11, 2025
2 checks passed
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.

1 participant