import json from aiohttp import web from server import PromptServer from .utils_server import is_param_truthy from ..config import get_config, set_user_config, refresh_config routes = PromptServer.instance.routes @routes.get('/rgthree/config.js') def api_get_user_config_file(request): """ Returns the user configuration as a jsavascript file. """ data_str = json.dumps(get_config(), sort_keys=True, indent=2, separators=(",", ": ")) text = f'export const rgthreeConfig = {data_str}' return web.Response(text=text, content_type='application/javascript') @routes.get('/rgthree/api/config') def api_get_user_config(request): """ Returns the user configuration. """ if is_param_truthy(request, 'refresh'): refresh_config() return web.json_response(get_config()) @routes.post('/rgthree/api/config') async def api_set_user_config(request): """ Returns the user configuration. """ post = await request.post() data = json.loads(post.get("json")) set_user_config(data) return web.json_response({"status": "ok"})