Dump changes

This commit is contained in:
Andrey Chervyakov 2021-10-09 21:33:03 +06:00
parent b49c6ced26
commit a4b572dcc7
40 changed files with 186 additions and 37 deletions

49
app/role/service.py Normal file
View 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()