User.create() methods
This commit is contained in:
parent
865e712ea5
commit
186ac0eab3
3 changed files with 24 additions and 7 deletions
|
@ -90,25 +90,42 @@ class User(UserBase, table=True):
|
||||||
)
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def create(cls, **kwargs) -> User | None:
|
def create(
|
||||||
|
cls,
|
||||||
|
*,
|
||||||
|
user: UserCreate,
|
||||||
|
) -> User | None:
|
||||||
"""
|
"""
|
||||||
Create a new user in the database.
|
Create a new user in the database.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with Connection.session as db:
|
with Connection.session as db:
|
||||||
user = cls.from_orm(UserCreate(**kwargs))
|
new_user = cls.from_orm(user)
|
||||||
|
|
||||||
db.add(user)
|
db.add(new_user)
|
||||||
db.commit()
|
db.commit()
|
||||||
db.refresh(user)
|
db.refresh(new_user)
|
||||||
|
|
||||||
return user
|
return new_user
|
||||||
|
|
||||||
except IntegrityError:
|
except IntegrityError:
|
||||||
# user already existed
|
# user already existed
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def create_kwargs(
|
||||||
|
cls,
|
||||||
|
**kwargs
|
||||||
|
) -> User | None:
|
||||||
|
"""
|
||||||
|
Create a new user in the database. Keywords version.
|
||||||
|
"""
|
||||||
|
|
||||||
|
return cls.create(
|
||||||
|
user=UserCreate(**kwargs),
|
||||||
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get(cls, name: str) -> User | None:
|
def get(cls, name: str) -> User | None:
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -63,7 +63,7 @@ async def create_initial_admin(
|
||||||
raise HTTPException(status_code=status.HTTP_409_CONFLICT)
|
raise HTTPException(status_code=status.HTTP_409_CONFLICT)
|
||||||
|
|
||||||
# create an administrative user
|
# create an administrative user
|
||||||
new_user = User.create(**admin_user.dict())
|
new_user = User.create(admin_user)
|
||||||
new_user.set_capabilities([UserCapabilityType.admin])
|
new_user.set_capabilities([UserCapabilityType.admin])
|
||||||
new_user.update()
|
new_user.update()
|
||||||
|
|
||||||
|
|
|
@ -87,7 +87,7 @@ async def add_user(
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# actually create the new user
|
# actually create the new user
|
||||||
new_user = User.create(**user.dict())
|
new_user = User.create(user=user)
|
||||||
|
|
||||||
# fail if creation was unsuccessful
|
# fail if creation was unsuccessful
|
||||||
if new_user is None:
|
if new_user is None:
|
||||||
|
|
Loading…
Reference in a new issue