From d875ac8cba073f242133f8cd9deeae922aacd513 Mon Sep 17 00:00:00 2001 From: Kurbanov Bulat Date: Tue, 28 Dec 2021 22:54:01 +0300 Subject: [PATCH] Add create_language endpoint --- src/app/serializers.py | 7 +++++-- src/app/views.py | 7 ++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/app/serializers.py b/src/app/serializers.py index b0a918a..aef1711 100644 --- a/src/app/serializers.py +++ b/src/app/serializers.py @@ -1,12 +1,15 @@ from pydantic import BaseModel, constr -class LanguageDetail(BaseModel): - id: int +class CreateLanguage(BaseModel): label: constr(max_length=16) # type: ignore code: constr(max_length=4) # type: ignore +class LanguageDetail(CreateLanguage): + id: int + + class UserBase(BaseModel): user_id: int last_name: constr(max_length=64) # type: ignore diff --git a/src/app/views.py b/src/app/views.py index 6c5585f..1292ca2 100644 --- a/src/app/views.py +++ b/src/app/views.py @@ -4,7 +4,7 @@ from fastapi_pagination import Page, Params from fastapi_pagination.ext.ormar import paginate from app.depends import check_token -from app.serializers import UserCreateOrUpdate, UserDetail, LanguageDetail +from app.serializers import UserCreateOrUpdate, UserDetail, CreateLanguage, LanguageDetail from app.models import User, Language @@ -76,3 +76,8 @@ async def get_language(code: str): raise HTTPException(status_code=status.HTTP_404_NOT_FOUND) return language + + +@languages_router.post("/", response_model=LanguageDetail) +async def create_language(data: CreateLanguage): + return await Language.objects.create(**data.dict())