sd-webui-lobe-theme/scripts/lib/api.py

54 lines
1.9 KiB
Python

import json
from pathlib import Path
from fastapi import FastAPI, Response, Request
from scripts.lib.config import LobeConfig
from scripts.lib.package import LobePackage
from scripts.lib.lobe_log import LobeLog
class LobeApi:
def __init__(self, config: LobeConfig, package: LobePackage):
self.package = package
self.config = config
pass
def create_api_route(self, app: FastAPI):
@app.get("/lobe/package")
async def lobe_package_get():
LobeLog.debug("lobe_package_get")
if self.package.is_empty():
return Response(content=self.package.json(), media_type="application/json", status_code=404)
return Response(content=self.package.json(), media_type="application/json", status_code=200)
@app.get("/lobe/config")
async def lobe_config_get():
LobeLog.debug("lobe_config_get")
if self.config.is_empty():
return Response(content=self.config.json(), media_type="application/json", status_code=404)
return Response(content=self.config.json(), media_type="application/json", status_code=200)
@app.post("/lobe/config")
async def lobe_config_save(request: Request):
LobeLog.debug("lobe_config_save")
data = await request.json()
self.config.save(data)
return Response(
content=json.dumps({"message": "Config saved successfully"}),
media_type="application/json", status_code=200
)
@app.delete("/lobe/config")
async def lobe_config_delete():
LobeLog.debug("lobe_config_delete")
self.config.delete()
return Response(
content=json.dumps({"message": "Config deleted successfully"}),
media_type="application/json", status_code=200
)