mirror of
https://gitlab.com/megazordpobeda/DataRush.git
synced 2026-05-23 00:27:11 +00:00
Merge branch 'master' of gitlab.prodcontest.ru:team-15/project
This commit is contained in:
@@ -1,3 +1,5 @@
|
|||||||
|
from http import HTTPStatus as status
|
||||||
|
|
||||||
from ninja import Router
|
from ninja import Router
|
||||||
from ninja.errors import AuthenticationError
|
from ninja.errors import AuthenticationError
|
||||||
|
|
||||||
@@ -12,8 +14,8 @@ router = Router(tags=["user"])
|
|||||||
@router.post(
|
@router.post(
|
||||||
path="/sign-up",
|
path="/sign-up",
|
||||||
response={
|
response={
|
||||||
201: TokenSchema,
|
status.CREATED: TokenSchema,
|
||||||
400: BadRequestError,
|
status.BAD_REQUEST: BadRequestError,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
def sign_up(request, data: RegisterSchema):
|
def sign_up(request, data: RegisterSchema):
|
||||||
@@ -22,15 +24,15 @@ def sign_up(request, data: RegisterSchema):
|
|||||||
user.save()
|
user.save()
|
||||||
|
|
||||||
token = BearerAuth.generate_jwt(user)
|
token = BearerAuth.generate_jwt(user)
|
||||||
return 201, TokenSchema(token=token)
|
return status.CREATED, TokenSchema(token=token)
|
||||||
|
|
||||||
|
|
||||||
@router.post(
|
@router.post(
|
||||||
path="/sign-in",
|
path="/sign-in",
|
||||||
response={
|
response={
|
||||||
200: TokenSchema,
|
status.OK: TokenSchema,
|
||||||
400: BadRequestError,
|
status.BAD_REQUEST: BadRequestError,
|
||||||
401: ForbiddenError,
|
status.UNAUTHORIZED: ForbiddenError,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
def sign_in(request, data: LoginSchema):
|
def sign_in(request, data: LoginSchema):
|
||||||
@@ -41,15 +43,15 @@ def sign_in(request, data: LoginSchema):
|
|||||||
raise AuthenticationError
|
raise AuthenticationError
|
||||||
|
|
||||||
token = BearerAuth.generate_jwt(user)
|
token = BearerAuth.generate_jwt(user)
|
||||||
return 200, TokenSchema(token=token)
|
return status.OK, TokenSchema(token=token)
|
||||||
|
|
||||||
|
|
||||||
@router.get(
|
@router.get(
|
||||||
path="/user/{user_id}",
|
path="/user/{user_id}",
|
||||||
response={
|
response={
|
||||||
200: UserSchema,
|
status.OK: UserSchema,
|
||||||
400: BadRequestError,
|
status.BAD_REQUEST: BadRequestError,
|
||||||
404: NotFoundError,
|
status.NOT_FOUND: NotFoundError,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
def get_user(request, user_id: str):
|
def get_user(request, user_id: str):
|
||||||
|
|||||||
@@ -3,11 +3,18 @@ from django.db import models
|
|||||||
from apps.core.models import BaseModel
|
from apps.core.models import BaseModel
|
||||||
|
|
||||||
|
|
||||||
|
class UserRole(models.Choices):
|
||||||
|
STUDENT = "student"
|
||||||
|
METODIST = "metodist"
|
||||||
|
|
||||||
|
|
||||||
class User(BaseModel):
|
class User(BaseModel):
|
||||||
email = models.EmailField(unique=True, verbose_name="Почта")
|
email = models.EmailField(unique=True, verbose_name="Почта")
|
||||||
username = models.SlugField(unique=True, verbose_name="Юзернейм")
|
username = models.SlugField(unique=True, verbose_name="Юзернейм")
|
||||||
password = models.TextField(verbose_name="Пароль")
|
password = models.TextField(verbose_name="Пароль")
|
||||||
|
|
||||||
|
status = models.CharField(max_length=10, choices=UserRole.choices, default=UserRole.STUDENT)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.username
|
return self.username
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user