Initial commit: RIPS Manager web system
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
from fastapi import APIRouter, Request, Form, Depends
|
||||
from fastapi.responses import RedirectResponse
|
||||
from app.database import get_connection
|
||||
from app.auth import get_current_user
|
||||
|
||||
router = APIRouter(prefix="/config", tags=["config"])
|
||||
|
||||
DEFAULT_KEYS = [
|
||||
("firebird_host", "localhost"),
|
||||
("firebird_port", "3050"),
|
||||
("firebird_database", "/path/to/database.fdb"),
|
||||
("firebird_user", "SYSDBA"),
|
||||
("firebird_password", "masterkey"),
|
||||
("api_url", "https://api.example.com/rips"),
|
||||
("api_method", "POST"),
|
||||
("api_key", ""),
|
||||
("api_timeout", "30"),
|
||||
("num_documento_obligado", ""),
|
||||
("cod_prestador", ""),
|
||||
]
|
||||
|
||||
|
||||
def ensure_defaults():
|
||||
conn = get_connection()
|
||||
for key, default in DEFAULT_KEYS:
|
||||
exists = conn.execute("SELECT id FROM config WHERE key = ?", (key,)).fetchone()
|
||||
if not exists:
|
||||
conn.execute("INSERT INTO config (key, value) VALUES (?, ?)", (key, default))
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
|
||||
@router.get("")
|
||||
async def config_page(request: Request, user: dict = Depends(get_current_user)):
|
||||
ensure_defaults()
|
||||
conn = get_connection()
|
||||
configs = conn.execute("SELECT * FROM config ORDER BY key").fetchall()
|
||||
conn.close()
|
||||
return request.app.state.templates.TemplateResponse("config.html", {
|
||||
"request": request, "user": user, "configs": configs
|
||||
})
|
||||
|
||||
|
||||
@router.post("/save")
|
||||
async def config_save(request: Request, user: dict = Depends(get_current_user)):
|
||||
form = await request.form()
|
||||
conn = get_connection()
|
||||
for key, value in form.multi_items():
|
||||
if key.startswith("config_"):
|
||||
real_key = key.replace("config_", "", 1)
|
||||
conn.execute(
|
||||
"UPDATE config SET value = ? WHERE key = ?",
|
||||
(value, real_key)
|
||||
)
|
||||
conn.commit()
|
||||
conn.close()
|
||||
return RedirectResponse("/config", status_code=302)
|
||||
Reference in New Issue
Block a user