added competition endpoints

This commit is contained in:
Андрей Сумин
2025-03-01 01:10:08 +03:00
parent 65c86d2a9c
commit 7791a57b88
25 changed files with 209 additions and 64 deletions
+25
View File
@@ -0,0 +1,25 @@
from ninja import ModelSchema, Schema
from apps.user.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"]
class UserSchema(ModelSchema):
class Meta:
model = User
fields = ["email", "username"]
+43
View File
@@ -0,0 +1,43 @@
from ninja import Router
from api.v1.schemas import BadRequestError, ForbiddenError, NotFoundError
from api.v1.user.schemas import (
LoginSchema,
RegisterSchema,
TokenSchema,
UserSchema,
)
router = Router(tags=["user"])
@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): ...
@router.get(
path="/user/{user_id}",
response={
200: UserSchema,
400: BadRequestError,
404: NotFoundError,
},
)
def get_user(user_id: str): ...