From 1d832b9eda87851390f12dc2523d2b2799794bd7 Mon Sep 17 00:00:00 2001 From: azeeee05 Date: Mon, 19 Jan 2026 10:39:12 +0530 Subject: [PATCH] fixed import issues --- app/__init__.py | 3 + .../theme/color_palette_controller.py | 24 +++++--- app/routes/theme/__init__.py | 0 app/routes/theme/color_palette.py | 33 +++++++---- app/services/theme/color_palette_service.py | 55 +++++++++++++------ run.py | 4 +- 6 files changed, 82 insertions(+), 37 deletions(-) create mode 100644 app/routes/theme/__init__.py diff --git a/app/__init__.py b/app/__init__.py index 4303815..29f312d 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -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") diff --git a/app/controllers/theme/color_palette_controller.py b/app/controllers/theme/color_palette_controller.py index e2c5cbe..f910c90 100644 --- a/app/controllers/theme/color_palette_controller.py +++ b/app/controllers/theme/color_palette_controller.py @@ -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) \ No newline at end of file + return PaletteService.delete_palette(db, palette_id) diff --git a/app/routes/theme/__init__.py b/app/routes/theme/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/routes/theme/color_palette.py b/app/routes/theme/color_palette.py index 4332508..5514d43 100644 --- a/app/routes/theme/color_palette.py +++ b/app/routes/theme/color_palette.py @@ -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) \ No newline at end of file + return PaletteController.delete_palette(db, palette_id) diff --git a/app/services/theme/color_palette_service.py b/app/services/theme/color_palette_service.py index 24df73a..120e368 100644 --- a/app/services/theme/color_palette_service.py +++ b/app/services/theme/color_palette_service.py @@ -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 \ No newline at end of file + return True diff --git a/run.py b/run.py index d9fcbbc..3d26edb 100644 --- a/run.py +++ b/run.py @@ -9,5 +9,7 @@ if __name__ == "__main__": "run:app", host=settings.HOST, port=settings.PORT, - reload=settings.APP_ENV == "development" + reload=settings.APP_ENV == "development", ) + +# Force Reload