mirror of
https://gitlab.com/megazordpobeda/DataRush.git
synced 2026-05-23 15:37:10 +00:00
add team creation and fetch information by id
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
from ninja import ModelSchema, Schema
|
||||
|
||||
from apps.team.models import Team
|
||||
|
||||
|
||||
class CreateTeamSchema(ModelSchema):
|
||||
class Meta:
|
||||
model = Team
|
||||
fields = ("name", "members",)
|
||||
|
||||
|
||||
class TeamSchemaOut(ModelSchema):
|
||||
class Meta:
|
||||
model = Team
|
||||
fields = ("id", "name", "owner", "members", )
|
||||
@@ -0,0 +1,39 @@
|
||||
from http import HTTPStatus as status
|
||||
from uuid import UUID
|
||||
|
||||
from django.shortcuts import get_object_or_404
|
||||
from ninja import Router
|
||||
|
||||
from apps.team.models import Team
|
||||
from api.v1.team.schemas import TeamSchemaOut, CreateTeamSchema
|
||||
from api.v1.schemas import UnauthorizedError, BadRequestError, NotFoundError
|
||||
|
||||
router = Router()
|
||||
|
||||
|
||||
@router.post(
|
||||
"",
|
||||
response={
|
||||
201: TeamSchemaOut,
|
||||
400: BadRequestError,
|
||||
401: UnauthorizedError,
|
||||
},
|
||||
description="Create team. Note: members array must have team members uuid, default can be empty"
|
||||
)
|
||||
def create_team(request, team_data: CreateTeamSchema) -> (int, TeamSchemaOut):
|
||||
team = Team(name=team_data.name, owner=request.auth)
|
||||
team.members.add(request.auth)
|
||||
team.save()
|
||||
return 201, team
|
||||
|
||||
|
||||
@router.get(
|
||||
"{team_id}",
|
||||
response={
|
||||
200: TeamSchemaOut,
|
||||
401: UnauthorizedError,
|
||||
404: NotFoundError,
|
||||
}
|
||||
)
|
||||
def get_team(request, team_id: UUID) -> (int, TeamSchemaOut):
|
||||
return get_object_or_404(Team, pk=team_id)
|
||||
Reference in New Issue
Block a user