add swagger docs to signin and signup endooints

This commit is contained in:
Timur Kh.
2025-02-28 21:51:19 +03:00
parent 5fece08457
commit a066c9a8b5
9 changed files with 82 additions and 0 deletions
+5
View File
@@ -4,6 +4,7 @@ from ninja import NinjaAPI
from api.v1 import handlers
from api.v1.ping.views import router as ping_router
from api.v1.users.views import router as users_router
router = NinjaAPI(
title="project_name API",
@@ -17,6 +18,10 @@ router.add_router(
"ping",
ping_router,
)
router.add_router(
"",
users_router,
)
for exception, handler in handlers.exception_handlers:
+20
View File
@@ -0,0 +1,20 @@
from ninja import Schema, ModelSchema
from apps.users.models import User
class TokenSchema(Schema):
token: str
class RegisterSchema(ModelSchema):
class Meta:
model = User
fields = ["email", "username", "password"]
class LoginSchema(ModelSchema):
class Meta:
model = User
fields = ["email", "password"]
+31
View File
@@ -0,0 +1,31 @@
from ninja import Router
from api.v1.users.schemas import LoginSchema, RegisterSchema, TokenSchema
from api.v1.schemas import BadRequestError, ForbiddenError
from apps.users.models import User
router = Router(tags=["users"])
@router.post(
path="/sign-up",
response={
201: TokenSchema,
400: BadRequestError,
}
)
def sign_up(data: RegisterSchema):
...
@router.post(
path="/sign-in",
response={
200: TokenSchema,
400: BadRequestError,
403: ForbiddenError,
}
)
def sign_in(data: LoginSchema):
...
+9
View File
@@ -0,0 +1,9 @@
from django.apps import AppConfig
class UsersConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'apps.users'
label = 'users'
+16
View File
@@ -0,0 +1,16 @@
from django.db import models
from apps.core.models import BaseModel
class User(BaseModel):
email = models.EmailField(unique=True, verbose_name="Почта")
username = models.SlugField(unique=True, verbose_name="Юзернейм")
password = models.TextField(verbose_name="Пароль")
def __str__(self):
return self.username
class Meta:
verbose_name = "пользователь"
verbose_name_plural = "пользователи"
+1
View File
@@ -443,6 +443,7 @@ INSTALLED_APPS = [
"minio_storage",
# Internal apps
"apps.core",
"apps.users",
]
# GUID