Этот проект предоставляет API для управления пользователями, а также для работы с реферальными (инвайт) кодами. Он включает в себя возможность регистрации пользователей, авторизацию с использованием токенов, генерацию инвайт-кодов и их активацию, а также управление рефералами (пользователями, которые использовали инвайт-коды).
Пользователь может зарегистрироваться, указав имя пользователя, номер телефона и пароль. После регистрации пользователю назначается уникальный токен для авторизации.
После регистрации или предоставления правильных данных для входа, пользователю возвращается токен авторизации. Генерация инвайт-кода При авторизации пользователя создается уникальный 6-значный инвайт-код, который может быть использован для приглашения других пользователей.
Пользователь может активировать инвайт-код, введя его в соответствующем поле. При этом, пользователь, который вводит инвайт-код, добавляется в список рефералов пользователя, который его пригласил.
Пользователь может получить список всех рефералов (пользователей, которые использовали его инвайт-код).
Профиль пользователя с отображением информации о нем, активированном инвайт-коде и рефералах.
SQLite / PostgreSQL — реляционная база данных для хранения данных о пользователях, инвайт-кодах и рефералах.
Перед тем как начать тестирование API, необходимо собрать Docker образы для вашего проекта. Для этого выполните следующие шаги:
-
$ docker-compose up --build
После того как образы собраны, примените миграции, чтобы создать все необходимые таблицы в базе данных:
$ docker-compose run backend python manage.py migrate
Для этого откройте Postman, выберите File > Import, затем загрузите файл коллекции из директории postman.
Выберите нужный запрос (например, для регистрации пользователя, логина, получения информации о профиле и т.д.).
Убедитесь, что вы добавили правильные данные в параметры запроса (например, номер телефона, пароль и т.д.).
POST /register/
-
Параметры запроса:
username
(string) - Имя пользователяphone_number
(string) - Номер телефона (в формате +79239592010)password
(string) - Пароль
-
Успешный ответ:
{ "message": "User registered successfully" }
-
Ошибка (например, если пользователь уже существует):
{ "detail": "User already exists" }
POST /send_code/
-
Параметры запроса:
phone_number
(string) - Номер телефона, на который будет отправлен код
-
Успешный ответ:
{ "auth_code": "1234" }
-
Ошибка (если номер телефона не найден):
{ "detail": "User not found" }
POST /verify_code/
-
Параметры запроса:
phone_number
(string) - Номер телефонаauth_code
(string) - Код подтверждения
-
Успешный ответ:
{ "message": "Verification successful", "token": "your_token_here" }
-
Ошибка (если неверные данные):
{ "detail": "Invalid credentials" } ``` ```
POST /login/
-
Параметры запроса:
your_token
(string) - Ваш токен
-
Успешный ответ:
{ "message": "Verification successful", "invite_code": "your_invite_code" }
-
Ошибка (если неверные данные):
{ "detail": "Invite code already exists" } ``` ```
GET /profile/
-
Успешный ответ:
{ "user": { "username": "GGAA", "phone_number": "+79239592010", "referrals": [ "+79239592011" ], "activated_invite_code": "EJJR3P" } }
-
Ошибка (если не авторизован):
{ "detail": "Authentication credentials were not provided." }
POST /activate_invite/
-
Параметры запроса:
phone_number
(string) - Номер телефона пользователяinvite_code
(string) - Инвайт-код
-
Успешный ответ:
{ "message": "Invite code activated successfully", "activated_invite_code": "EJJR3P" }
-
Ошибка (если инвайт-код неверен):
{ "detail": "You have invite code" }