30 lines
939 B
Python
30 lines
939 B
Python
from fastapi import APIRouter, Depends, Form
|
|
from sqlalchemy.orm import Session
|
|
from datetime import datetime
|
|
from database import get_db
|
|
import models
|
|
from auth import require_admin
|
|
|
|
router = APIRouter(prefix="/api/settings", tags=["settings"])
|
|
|
|
@router.get("")
|
|
def get_settings(db: Session = Depends(get_db), _=Depends(require_admin)):
|
|
settings = db.query(models.SystemSetting).all()
|
|
return {s.key: s.value for s in settings}
|
|
|
|
@router.put("")
|
|
def update_settings(
|
|
report_visibility_policy: str = Form(...),
|
|
db: Session = Depends(get_db),
|
|
_=Depends(require_admin)
|
|
):
|
|
for key, value in [("report_visibility_policy", report_visibility_policy)]:
|
|
s = db.query(models.SystemSetting).filter_by(key=key).first()
|
|
if s:
|
|
s.value = value
|
|
s.updated_at = datetime.now()
|
|
else:
|
|
db.add(models.SystemSetting(key=key, value=value))
|
|
db.commit()
|
|
return {"ok": True}
|