Dump changes
This commit is contained in:
parent
b49c6ced26
commit
a4b572dcc7
40 changed files with 186 additions and 37 deletions
49
app/role/service.py
Normal file
49
app/role/service.py
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
from typing import Optional
|
||||
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.role.model import Role
|
||||
|
||||
|
||||
def create_role(db: Session, role: Role) -> Role:
|
||||
role.name = role.name.lower()
|
||||
|
||||
if get_role_by_name(db, role.name) is not None:
|
||||
raise Exception()
|
||||
|
||||
db.add(role)
|
||||
db.commit()
|
||||
db.refresh(role)
|
||||
|
||||
return role
|
||||
|
||||
|
||||
def get_role_by_name(db: Session, name: str) -> Optional[Role]:
|
||||
return db.query(Role).filter(Role.name == name).one_or_none()
|
||||
|
||||
|
||||
def get_role_by_id(db: Session, id: int) -> Optional[Role]:
|
||||
return db.query(Role).filter(Role.id == id).one_or_none()
|
||||
|
||||
|
||||
def get_roles(db: Session) -> list[Role]:
|
||||
return db.query(Role).all()
|
||||
|
||||
|
||||
def create_admin_role(db: Session):
|
||||
admin_role = get_role_by_name(db, "admin")
|
||||
|
||||
if admin_role is None:
|
||||
db.add(Role(name="admin"))
|
||||
db.commit()
|
||||
|
||||
|
||||
def delete_role_by_id(db: Session, id: int):
|
||||
role = get_role_by_id(db, id)
|
||||
|
||||
if role.name == "admin":
|
||||
return
|
||||
|
||||
if role is not None:
|
||||
db.delete(role)
|
||||
db.commit()
|
||||
Loading…
Add table
Add a link
Reference in a new issue