mirror of
https://gitlab.com/megazordpobeda/DataRush.git
synced 2026-05-23 03:57:09 +00:00
added competition endpoints
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
from uuid import UUID
|
||||
|
||||
from ninja import ModelSchema
|
||||
|
||||
from apps.competition.models import Competition
|
||||
|
||||
|
||||
class CompetitionOut(ModelSchema):
|
||||
id: UUID
|
||||
|
||||
class Meta:
|
||||
model = Competition
|
||||
fields = "__all__"
|
||||
|
||||
|
||||
class CompetitionListInstanceOut(ModelSchema):
|
||||
id: UUID
|
||||
is_participating: bool
|
||||
completed: bool
|
||||
|
||||
class Meta:
|
||||
model = Competition
|
||||
fields = (
|
||||
"id",
|
||||
"title",
|
||||
"description",
|
||||
"start_date",
|
||||
"end_date",
|
||||
"image_url",
|
||||
)
|
||||
@@ -0,0 +1,39 @@
|
||||
from http import HTTPStatus as status
|
||||
from uuid import UUID
|
||||
|
||||
from django.http import HttpRequest
|
||||
from ninja import Router
|
||||
|
||||
import api.v1.schemas as global_schemas
|
||||
from api.v1.auth import BearerAuth
|
||||
from api.v1.competition import schemas
|
||||
|
||||
router = Router(tags=["competition"])
|
||||
|
||||
|
||||
@router.get(
|
||||
"competition/{competition_id}",
|
||||
response={
|
||||
status.OK: schemas.CompetitionOut,
|
||||
status.BAD_REQUEST: global_schemas.BadRequestError,
|
||||
status.UNAUTHORIZED: global_schemas.UnauthorizedError,
|
||||
},
|
||||
auth=BearerAuth(),
|
||||
)
|
||||
def get_competition(
|
||||
request: HttpRequest, competition_id: UUID
|
||||
) -> tuple[status, schemas.CompetitionOut]: ...
|
||||
|
||||
|
||||
@router.get(
|
||||
"competitions",
|
||||
response={
|
||||
status.OK: list[schemas.CompetitionListInstanceOut],
|
||||
status.BAD_REQUEST: global_schemas.BadRequestError,
|
||||
status.UNAUTHORIZED: global_schemas.UnauthorizedError,
|
||||
},
|
||||
auth=BearerAuth(),
|
||||
)
|
||||
def list_competitions(
|
||||
request: HttpRequest, is_participating: bool
|
||||
) -> tuple[status, list[schemas.CompetitionListInstanceOut]]: ...
|
||||
Reference in New Issue
Block a user