Source code for mindroot.coreplugins.admin.plugin_router
from fastapi import APIRouter, HTTPException
from pydantic import BaseModel
import json
from lib import plugins
router = APIRouter()
[docs]
class PluginUpdateRequest(BaseModel):
plugins: dict
[docs]
@router.post("/update-plugins")
def update_plugins(request: PluginUpdateRequest):
try:
with open('plugins.json', 'r') as file:
plugins_data = json.load(file)
for plugin in plugins_data:
if plugin['name'] in request.plugins:
plugin['enabled'] = request.plugins[plugin['name']]
with open('plugins.json', 'w') as file:
json.dump(plugins_data, file, indent=2)
plugins.load('data/plugin_manifest.json')
return {"message": "Plugins updated successfully"}
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
[docs]
@router.get("/get-plugins")
async def get_plugins():
try:
return plugins.load_plugin_manifest()
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))