From c80054cf5596dd8cacc42f0daafd19d0c74135de Mon Sep 17 00:00:00 2001 From: Kurbanov Bulat Date: Sat, 1 Jan 2022 22:02:26 +0300 Subject: [PATCH] Update user settings creating --- poetry.lock | 10 +++++----- src/app/serializers.py | 2 +- src/app/views.py | 7 +++++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/poetry.lock b/poetry.lock index aae8303..b8555e3 100644 --- a/poetry.lock +++ b/poetry.lock @@ -133,13 +133,13 @@ pydantic = ">=1.7.2" [package.extras] gino = ["gino[starlette] (>=1.0.1)", "SQLAlchemy (>=1.3.20)"] -all = ["gino[starlette] (>=1.0.1)", "SQLAlchemy (>=1.3.20)", "databases[sqlite,postgresql,mysql] (>=0.4.0)", "orm (>=0.1.5)", "tortoise-orm[aiosqlite,asyncpg,aiomysql] (>=0.16.18,<0.18.0)", "asyncpg (>=0.24.0)", "ormar (>=0.10.5)", "Django (<3.3.0)", "piccolo (>=0.29,<0.35)", "motor (>=2.5.1,<3.0.0)"] +all = ["gino[starlette] (>=1.0.1)", "SQLAlchemy (>=1.3.20)", "databases[mysql,sqlite,postgresql] (>=0.4.0)", "orm (>=0.1.5)", "tortoise-orm[aiomysql,asyncpg,aiosqlite] (>=0.16.18,<0.18.0)", "asyncpg (>=0.24.0)", "ormar (>=0.10.5)", "Django (<3.3.0)", "piccolo (>=0.29,<0.35)", "motor (>=2.5.1,<3.0.0)"] sqlalchemy = ["SQLAlchemy (>=1.3.20)"] asyncpg = ["SQLAlchemy (>=1.3.20)", "asyncpg (>=0.24.0)"] -databases = ["databases[sqlite,postgresql,mysql] (>=0.4.0)"] -orm = ["databases[sqlite,postgresql,mysql] (>=0.4.0)", "orm (>=0.1.5)", "typesystem (>=0.2.0,<0.3.0)"] -django = ["databases[sqlite,postgresql,mysql] (>=0.4.0)", "Django (<3.3.0)"] -tortoise = ["tortoise-orm[aiosqlite,asyncpg,aiomysql] (>=0.16.18,<0.18.0)"] +databases = ["databases[mysql,sqlite,postgresql] (>=0.4.0)"] +orm = ["databases[mysql,sqlite,postgresql] (>=0.4.0)", "orm (>=0.1.5)", "typesystem (>=0.2.0,<0.3.0)"] +django = ["databases[mysql,sqlite,postgresql] (>=0.4.0)", "Django (<3.3.0)"] +tortoise = ["tortoise-orm[aiomysql,asyncpg,aiosqlite] (>=0.16.18,<0.18.0)"] ormar = ["ormar (>=0.10.5)"] piccolo = ["piccolo (>=0.29,<0.35)"] motor = ["motor (>=2.5.1,<3.0.0)"] diff --git a/src/app/serializers.py b/src/app/serializers.py index dc829de..5778913 100644 --- a/src/app/serializers.py +++ b/src/app/serializers.py @@ -21,7 +21,7 @@ class UserBase(BaseModel): class UserCreateOrUpdate(UserBase): - allowed_langs: list[str] + allowed_langs: Optional[list[str]] = None class UserUpdate(BaseModel): diff --git a/src/app/views.py b/src/app/views.py index 72cdb58..34af598 100644 --- a/src/app/views.py +++ b/src/app/views.py @@ -30,7 +30,7 @@ async def get_users(): @users_router.get("/{user_id}", response_model=UserDetail) async def get_user(user_id: int): - user_data = await User.objects.select_related("allowd_langs").get_or_none( + user_data = await User.objects.select_related("allowed_langs").get_or_none( user_id=user_id ) @@ -54,11 +54,14 @@ async def create_or_update_user(data: UserCreateOrUpdate): user_data = await User.objects.select_related("allowed_langs").create( **data_dict ) + if allowed_langs is None: + allowed_langs = ["ru", "be", "uk"] else: data_dict.pop("user_id") user_data.update_from_dict(data_dict) - await update_user_allowed_langs(user_data, allowed_langs) + if allowed_langs: + await update_user_allowed_langs(user_data, allowed_langs) return user_data