Header / Footer editor added - Right now linked to products permission, which should be changed
This commit is contained in:
@ -9,6 +9,7 @@ from .db.session import engine
|
||||
from .routers import (
|
||||
device,
|
||||
guest_book,
|
||||
header_footer,
|
||||
login,
|
||||
menu_category,
|
||||
modifier,
|
||||
@ -63,6 +64,7 @@ app.include_router(menu_category.router, prefix="/api/menu-categories", tags=["p
|
||||
app.include_router(product.router, prefix="/api/products", tags=["products"])
|
||||
app.include_router(device.router, prefix="/api/devices", tags=["devices"])
|
||||
app.include_router(sale_category.router, prefix="/api/sale-categories", tags=["products"])
|
||||
app.include_router(header_footer.router, prefix="/api/header-footer", tags=["products"])
|
||||
|
||||
app.include_router(section.router, prefix="/api/sections", tags=["sections"])
|
||||
app.include_router(section_printer.router, prefix="/api/section-printers", tags=["section-printers"])
|
||||
|
||||
58
barker/barker/routers/header_footer.py
Normal file
58
barker/barker/routers/header_footer.py
Normal file
@ -0,0 +1,58 @@
|
||||
import barker.schemas.header_footer as schemas
|
||||
|
||||
from fastapi import APIRouter, Depends, HTTPException, Security, status
|
||||
from sqlalchemy.exc import SQLAlchemyError
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from ..core.security import get_current_active_user as get_user
|
||||
from ..db.session import SessionLocal
|
||||
from ..models.master import DbSetting
|
||||
from ..schemas.auth import UserToken
|
||||
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# Dependency
|
||||
def get_db():
|
||||
try:
|
||||
db = SessionLocal()
|
||||
yield db
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
|
||||
@router.get("")
|
||||
def get(
|
||||
db: Session = Depends(get_db),
|
||||
user: UserToken = Security(get_user, scopes=["products"]),
|
||||
):
|
||||
return [
|
||||
{"id": item.id, "name": item.name, "text": item.data["Text"]}
|
||||
for item in db.query(DbSetting).filter(DbSetting.name.in_(["Header", "Footer"])).all()
|
||||
]
|
||||
|
||||
|
||||
@router.post("")
|
||||
def save(
|
||||
data: schemas.HeaderFooter,
|
||||
db: Session = Depends(get_db),
|
||||
user: UserToken = Security(get_user, scopes=["products"]),
|
||||
):
|
||||
try:
|
||||
item: DbSetting = db.query(DbSetting).filter(DbSetting.id == data.id_, DbSetting.name == data.name).first()
|
||||
item.data = {"Text": data.text}
|
||||
db.commit()
|
||||
return [
|
||||
{"id": item.id, "name": item.name, "text": item.data["Text"]}
|
||||
for item in db.query(DbSetting).filter(DbSetting.name.in_(["Header", "Footer"])).all()
|
||||
]
|
||||
except SQLAlchemyError as e:
|
||||
db.rollback()
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
|
||||
detail=str(e),
|
||||
)
|
||||
except Exception:
|
||||
db.rollback()
|
||||
raise
|
||||
14
barker/barker/schemas/header_footer.py
Normal file
14
barker/barker/schemas/header_footer.py
Normal file
@ -0,0 +1,14 @@
|
||||
import uuid
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
from . import to_camel
|
||||
|
||||
|
||||
class HeaderFooter(BaseModel):
|
||||
id_: uuid.UUID
|
||||
name: str
|
||||
text: str
|
||||
|
||||
class Config:
|
||||
alias_generator = to_camel
|
||||
Reference in New Issue
Block a user