fixed import issues
This commit is contained in:
@@ -91,6 +91,9 @@ def create_app() -> FastAPI:
|
||||
app.include_router(access_router, prefix="/api/access", tags=["Access Management"])
|
||||
app.include_router(user_router, prefix="/api/user", tags=["User Management"])
|
||||
|
||||
from app.routes.theme.color_palette import router as palette_router
|
||||
app.include_router(palette_router, prefix="/api/theme", tags=["Theme Management"])
|
||||
|
||||
|
||||
# === Startup: Test DB Connection (Sync + SQLAlchemy 2.0 compatible) ===
|
||||
@app.on_event("startup")
|
||||
|
||||
@@ -1,15 +1,19 @@
|
||||
from sqlalchemy.orm import Session
|
||||
from uuid import UUID
|
||||
from typing import List, Optional
|
||||
from app.models.auth.user_models import User
|
||||
from app.models.theme.color_palette_models import ColorPalette
|
||||
from app.schemas.theme.palette_schema import ColorPaletteCreate, ColorPaletteUpdate
|
||||
from app.services.theme.palette_service import PaletteService
|
||||
from app.models.auth.user_model import User
|
||||
from app.models.theme.color_palette_model import ColorPalette
|
||||
from app.schemas.theme.color_palette_schema import (
|
||||
ColorPaletteCreate,
|
||||
ColorPaletteUpdate,
|
||||
)
|
||||
from app.services.theme.color_palette_service import PaletteService
|
||||
|
||||
|
||||
class PaletteController:
|
||||
@staticmethod
|
||||
def get_all_palettes(db: Session, current_user: User) -> List[ColorPalette]:
|
||||
|
||||
|
||||
tenant_id = current_user.tenant_id
|
||||
return PaletteService.get_all_palettes(db, tenant_id)
|
||||
|
||||
@@ -18,13 +22,17 @@ class PaletteController:
|
||||
return PaletteService.get_palette_by_id(db, palette_id)
|
||||
|
||||
@staticmethod
|
||||
def create_palette(db: Session, data: ColorPaletteCreate, current_user: User) -> ColorPalette:
|
||||
def create_palette(
|
||||
db: Session, data: ColorPaletteCreate, current_user: User
|
||||
) -> ColorPalette:
|
||||
return PaletteService.create_palette(db, data, tenant_id=None)
|
||||
|
||||
@staticmethod
|
||||
def update_palette(db: Session, palette_id: UUID, data: ColorPaletteUpdate) -> ColorPalette:
|
||||
def update_palette(
|
||||
db: Session, palette_id: UUID, data: ColorPaletteUpdate
|
||||
) -> ColorPalette:
|
||||
return PaletteService.update_palette(db, palette_id, data)
|
||||
|
||||
@staticmethod
|
||||
def delete_palette(db: Session, palette_id: UUID):
|
||||
return PaletteService.delete_palette(db, palette_id)
|
||||
return PaletteService.delete_palette(db, palette_id)
|
||||
|
||||
@@ -3,56 +3,67 @@ from sqlalchemy.orm import Session
|
||||
from typing import List
|
||||
from uuid import UUID
|
||||
from app.config.database import get_db
|
||||
from app.controllers.theme.palette_controller import PaletteController
|
||||
from app.schemas.theme.palette_schema import ColorPaletteCreate, ColorPaletteUpdate, ColorPaletteResponse
|
||||
from app.controllers.theme.color_palette_controller import PaletteController
|
||||
from app.schemas.theme.color_palette_schema import (
|
||||
ColorPaletteCreate,
|
||||
ColorPaletteUpdate,
|
||||
ColorPaletteResponse,
|
||||
)
|
||||
from app.middleware.auth_middleware import get_current_user, require_access
|
||||
from app.models.auth.user_model import User
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@router.get("/get", response_model=List[ColorPaletteResponse])
|
||||
def get_all_palettes(
|
||||
db: Session = Depends(get_db),
|
||||
current_user: User = Depends(get_current_user)
|
||||
db: Session = Depends(get_db), current_user: User = Depends(get_current_user)
|
||||
):
|
||||
return PaletteController.get_all_palettes(db, current_user)
|
||||
|
||||
|
||||
@router.get("/get/{palette_id}", response_model=ColorPaletteResponse)
|
||||
def get_palette(
|
||||
palette_id: UUID,
|
||||
db: Session = Depends(get_db),
|
||||
current_user: User = Depends(get_current_user)
|
||||
current_user: User = Depends(get_current_user),
|
||||
):
|
||||
return PaletteController.get_palette(db, palette_id)
|
||||
|
||||
@router.post("/create", response_model=ColorPaletteResponse, status_code=status.HTTP_201_CREATED)
|
||||
|
||||
@router.post(
|
||||
"/create", response_model=ColorPaletteResponse, status_code=status.HTTP_201_CREATED
|
||||
)
|
||||
def create_palette(
|
||||
data: ColorPaletteCreate,
|
||||
db: Session = Depends(get_db),
|
||||
current_user: User = Depends(get_current_user),
|
||||
_ = Depends(require_access("superadmin.palette.create"))
|
||||
_=Depends(require_access("superadmin.palette.create")),
|
||||
):
|
||||
return PaletteController.create_palette(db, data, current_user)
|
||||
|
||||
@router.put("/update/users/me/preferences", deprecated=True)
|
||||
|
||||
@router.put("/update/users/me/preferences", deprecated=True)
|
||||
def update_user_preference():
|
||||
pass
|
||||
|
||||
|
||||
@router.put("/update/{palette_id}", response_model=ColorPaletteResponse)
|
||||
def update_palette(
|
||||
palette_id: UUID,
|
||||
data: ColorPaletteUpdate,
|
||||
db: Session = Depends(get_db),
|
||||
current_user: User = Depends(get_current_user),
|
||||
_ = Depends(require_access("superadmin.palette.update"))
|
||||
_=Depends(require_access("superadmin.palette.update")),
|
||||
):
|
||||
return PaletteController.update_palette(db, palette_id, data)
|
||||
|
||||
|
||||
@router.delete("/delete/{palette_id}", status_code=status.HTTP_200_OK)
|
||||
def delete_palette(
|
||||
palette_id: UUID,
|
||||
db: Session = Depends(get_db),
|
||||
current_user: User = Depends(get_current_user),
|
||||
_ = Depends(require_access("superadmin.palette.delete"))
|
||||
_=Depends(require_access("superadmin.palette.delete")),
|
||||
):
|
||||
return PaletteController.delete_palette(db, palette_id)
|
||||
return PaletteController.delete_palette(db, palette_id)
|
||||
|
||||
@@ -2,15 +2,23 @@ from sqlalchemy.orm import Session
|
||||
from uuid import UUID
|
||||
from typing import List, Optional
|
||||
from fastapi import HTTPException, status
|
||||
from app.models.theme.color_palette_models import ColorPalette
|
||||
from app.schemas.theme.palette_schema import ColorPaletteCreate, ColorPaletteUpdate
|
||||
from app.models.theme.color_palette_model import ColorPalette
|
||||
from app.schemas.theme.color_palette_schema import (
|
||||
ColorPaletteCreate,
|
||||
ColorPaletteUpdate,
|
||||
)
|
||||
|
||||
|
||||
class PaletteService:
|
||||
@staticmethod
|
||||
def get_all_palettes(db: Session, tenant_id: Optional[UUID] = None) -> List[ColorPalette]:
|
||||
def get_all_palettes(
|
||||
db: Session, tenant_id: Optional[UUID] = None
|
||||
) -> List[ColorPalette]:
|
||||
query = db.query(ColorPalette)
|
||||
if tenant_id:
|
||||
query = query.filter((ColorPalette.tenant_id == None) | (ColorPalette.tenant_id == tenant_id))
|
||||
query = query.filter(
|
||||
(ColorPalette.tenant_id == None) | (ColorPalette.tenant_id == tenant_id)
|
||||
)
|
||||
else:
|
||||
pass
|
||||
return query.all()
|
||||
@@ -23,19 +31,25 @@ class PaletteService:
|
||||
return palette
|
||||
|
||||
@staticmethod
|
||||
def create_palette(db: Session, data: ColorPaletteCreate, tenant_id: Optional[UUID] = None) -> ColorPalette:
|
||||
def create_palette(
|
||||
db: Session, data: ColorPaletteCreate, tenant_id: Optional[UUID] = None
|
||||
) -> ColorPalette:
|
||||
if data.is_default:
|
||||
if tenant_id:
|
||||
db.query(ColorPalette).filter(ColorPalette.tenant_id == tenant_id).update({"is_default": False})
|
||||
db.query(ColorPalette).filter(
|
||||
ColorPalette.tenant_id == tenant_id
|
||||
).update({"is_default": False})
|
||||
else:
|
||||
db.query(ColorPalette).filter(ColorPalette.tenant_id == None).update({"is_default": False})
|
||||
|
||||
db.query(ColorPalette).filter(ColorPalette.tenant_id == None).update(
|
||||
{"is_default": False}
|
||||
)
|
||||
|
||||
db_palette = ColorPalette(
|
||||
name=data.name,
|
||||
description=data.description,
|
||||
colors=data.colors.model_dump(),
|
||||
is_default=data.is_default,
|
||||
tenant_id=tenant_id
|
||||
tenant_id=tenant_id,
|
||||
)
|
||||
db.add(db_palette)
|
||||
db.commit()
|
||||
@@ -43,9 +57,11 @@ class PaletteService:
|
||||
return db_palette
|
||||
|
||||
@staticmethod
|
||||
def update_palette(db: Session, palette_id: UUID, data: ColorPaletteUpdate) -> ColorPalette:
|
||||
def update_palette(
|
||||
db: Session, palette_id: UUID, data: ColorPaletteUpdate
|
||||
) -> ColorPalette:
|
||||
palette = PaletteService.get_palette_by_id(db, palette_id)
|
||||
|
||||
|
||||
if data.name is not None:
|
||||
palette.name = data.name
|
||||
if data.description is not None:
|
||||
@@ -56,12 +72,17 @@ class PaletteService:
|
||||
if data.is_default:
|
||||
tenant_id = palette.tenant_id
|
||||
if tenant_id:
|
||||
db.query(ColorPalette).filter(ColorPalette.tenant_id == tenant_id, ColorPalette.id != palette_id).update({"is_default": False})
|
||||
db.query(ColorPalette).filter(
|
||||
ColorPalette.tenant_id == tenant_id,
|
||||
ColorPalette.id != palette_id,
|
||||
).update({"is_default": False})
|
||||
else:
|
||||
db.query(ColorPalette).filter(ColorPalette.tenant_id == None, ColorPalette.id != palette_id).update({"is_default": False})
|
||||
|
||||
db.query(ColorPalette).filter(
|
||||
ColorPalette.tenant_id == None, ColorPalette.id != palette_id
|
||||
).update({"is_default": False})
|
||||
|
||||
palette.is_default = data.is_default
|
||||
|
||||
|
||||
db.commit()
|
||||
db.refresh(palette)
|
||||
return palette
|
||||
@@ -69,7 +90,7 @@ class PaletteService:
|
||||
@staticmethod
|
||||
def delete_palette(db: Session, palette_id: UUID):
|
||||
palette = PaletteService.get_palette_by_id(db, palette_id)
|
||||
|
||||
|
||||
db.delete(palette)
|
||||
db.commit()
|
||||
return True
|
||||
return True
|
||||
|
||||
Reference in New Issue
Block a user