Files
we_pro_dock/BACKEND/ACCOUNTS.md
2024-05-14 11:39:33 +03:00

6.4 KiB
Raw Permalink Blame History

Кортежи статуса пола

GENDER_CHOICES = (
('n', 'Не указано'), ('m', 'Мужчина'),
('f', 'Женщина'),
)

Модель пользователя

  1. first_name (CharField): Имя пользователя (до 60 символов).
  2. last_name (CharField): Фамилия пользователя (до 60 символов).
  3. **gender** (CharField): Пол пользователя (выбор из предустановленных значений).
  4. email (EmailField): Адрес электронной почты пользователя (уникальный).
  5. username (CharField): Никнейм пользователя (до 60 символов).
  6. bio (TextField): О себе (опционально, многострочное поле).
  7. image (URLField): Ссылка на аватар пользователя.
  8. followers (ManyToManyField): Подписчики пользователя.
  9. address (CharField): Адрес пользователя (до 255 символов, опционально).
  10. date_joined (DateTimeField): Дата регистрации пользователя (автоматически).
  11. last_updated (DateTimeField): Время последнего обновления профиля.
  12. last_login (DateTimeField): Время последней авторизации.
  13. status (BooleanField): Статус активности пользователя.

Сериализатор

  1. UserSerializer:
    • username (CharField): Никнейм пользователя.
    • email (EmailField): Адрес электронной почты пользователя.
    • password (CharField): Пароль пользователя (только для записи).
    • first_name (CharField): Имя пользователя.
    • last_name (CharField): Фамилия пользователя.
    • gender (ChoiceField): Пол пользователя (выбор из предустановленных значений).
    • bio (TextField): Биография пользователя.
    • image (URLField): URL-адрес аватара пользователя.
    • status (BooleanField): Статус активности пользователя.
    • Метод create: Создание нового пользователя с установкой пароля.
    • Метод update: Обновление информации о пользователе, включая пароль.
    • Дополнительно: Возвращает JWT-токен при аутентификации пользователя.

Маршрутизатор

  1. /users/login:

    • URL для входа в учетную запись.
    • Обрабатывается функцией account_login из модуля views в приложении config.accounts.
    • Имеет имя account-login для ссылок и представлений.
  2. /users:

    • URL для регистрации новой учетной записи пользователя.
    • Обрабатывается функцией account_registration из модуля views в приложении config.accounts.
    • Имеет имя account-registration для ссылок и представлений.
  3. /user:

    • URL для получения информации о текущем пользователе.
    • Обрабатывается классом UserView как представление, используя методы GET и PUT.
    • Имеет имя user-account для ссылок и представлений.
  4. /logout/:

    • URL для выхода из учетной записи.
    • Обрабатывается функцией signout из модуля views в приложении config.accounts.
    • Имеет имя logout для ссылок и представлений.
  5. /profiles/:

    • URL для работы с профилями пользователей.
    • Используется вместе с DefaultRouter, который автоматически создает CRUD-маршруты для профилей.
    • Имеет имя profiledetailview-list, profiledetailview-detail и т.д. для ссылок и представлений.

Контроллер (Views и API)

  1. account_registration:

    • URL: /users/registration/ (POST)
    • Описание: Регистрация новой учетной записи пользователя.
    • Входные данные: JSON объект с данными пользователя.
    • Выходные данные: JSON объект с данными зарегистрированного пользователя.
  2. account_login:

    • URL: /users/login/ (POST)
    • Описание: Вход пользователя в учетную запись.
    • Входные данные: JSON объект с email и паролем пользователя.
    • Выходные данные: JSON объект с данными пользователя и JWT-токеном для аутентификации.
  3. UserView:

    • URL: /user/ (GET, PUT)
    • Описание: Получение информации о текущем пользователе и обновление данных пользователя.
    • GET: Получение данных пользователя.
    • PUT: Обновление данных пользователя.
  4. ProfileDetailView:

    • URL: /profiles/ (GET, POST, DELETE)
    • Описание: Управление профилями пользователей.
    • GET: Получение данных профиля пользователя по его имени пользователя (username).
    • POST: Добавление пользователя в список подписчиков (followers) или удаление из него.
    • DELETE: Удаление пользователя из списка подписчиков (followers).
  5. signout:

    • URL: /logout/
    • Описание: Выход пользователя из учетной записи и перенаправление на главную страницу.