store.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. from fastapi import APIRouter, Depends, Query, status
  2. from fastapi.responses import JSONResponse
  3. from models.user import User
  4. from pydantic import BaseModel
  5. from auth.security import get_current_user
  6. from config import settings
  7. from utils.responses import success_response
  8. from fudo.fudo import get_table
  9. from services.data_service import ProductDataService
  10. store_router = APIRouter()
  11. class AppStateBody(BaseModel):
  12. state: bool
  13. @store_router.post("/state", response_class=JSONResponse)
  14. def set_store_state(state: AppStateBody, current_user: User = Depends(get_current_user)):
  15. if (current_user.permissions or -1) >= 1:
  16. settings.IS_OPEN_STORE = state.state
  17. return success_response({"state": settings.IS_OPEN_STORE})
  18. @store_router.post("/update_cache", response_class=JSONResponse)
  19. def update_cache(current_user: User = Depends(get_current_user)):
  20. if (current_user.permissions or -1) >= 1:
  21. ProductDataService.update_cache()
  22. return success_response({"state": settings.IS_OPEN_STORE})
  23. @store_router.get("/tables/exists", response_class=JSONResponse)
  24. def get_table_exists(q: str = Query(..., description="q parameter")):
  25. table = get_table(int(q))
  26. exist = bool(table)
  27. return success_response({"exists": exist}, status_code=200)
  28. @store_router.get("/state", response_class=JSONResponse)
  29. def get_store_state(_: User = Depends(get_current_user)):
  30. return success_response(data={"state": settings.IS_OPEN_STORE})