Update user settings creating

This commit is contained in:
2022-01-01 22:02:26 +03:00
parent e1389700cc
commit c80054cf55
3 changed files with 11 additions and 8 deletions

10
poetry.lock generated
View File

@@ -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)"]

View File

@@ -21,7 +21,7 @@ class UserBase(BaseModel):
class UserCreateOrUpdate(UserBase):
allowed_langs: list[str]
allowed_langs: Optional[list[str]] = None
class UserUpdate(BaseModel):

View File

@@ -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,10 +54,13 @@ 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)
if allowed_langs:
await update_user_allowed_langs(user_data, allowed_langs)
return user_data