mirror of
https://gitlab.com/megazordpobeda/DataRush.git
synced 2026-05-23 02:47:10 +00:00
add swagger docs to signin and signup endooints
This commit is contained in:
@@ -4,6 +4,7 @@ from ninja import NinjaAPI
|
|||||||
|
|
||||||
from api.v1 import handlers
|
from api.v1 import handlers
|
||||||
from api.v1.ping.views import router as ping_router
|
from api.v1.ping.views import router as ping_router
|
||||||
|
from api.v1.users.views import router as users_router
|
||||||
|
|
||||||
router = NinjaAPI(
|
router = NinjaAPI(
|
||||||
title="project_name API",
|
title="project_name API",
|
||||||
@@ -17,6 +18,10 @@ router.add_router(
|
|||||||
"ping",
|
"ping",
|
||||||
ping_router,
|
ping_router,
|
||||||
)
|
)
|
||||||
|
router.add_router(
|
||||||
|
"",
|
||||||
|
users_router,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
for exception, handler in handlers.exception_handlers:
|
for exception, handler in handlers.exception_handlers:
|
||||||
|
|||||||
@@ -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"]
|
||||||
@@ -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):
|
||||||
|
...
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
|
class UsersConfig(AppConfig):
|
||||||
|
default_auto_field = 'django.db.models.BigAutoField'
|
||||||
|
name = 'apps.users'
|
||||||
|
label = 'users'
|
||||||
|
|
||||||
|
|
||||||
@@ -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 = "пользователи"
|
||||||
@@ -443,6 +443,7 @@ INSTALLED_APPS = [
|
|||||||
"minio_storage",
|
"minio_storage",
|
||||||
# Internal apps
|
# Internal apps
|
||||||
"apps.core",
|
"apps.core",
|
||||||
|
"apps.users",
|
||||||
]
|
]
|
||||||
|
|
||||||
# GUID
|
# GUID
|
||||||
|
|||||||
Reference in New Issue
Block a user