From 1d46a54444fb984c1bfe143c96e999676f13dcf9 Mon Sep 17 00:00:00 2001 From: LinkinStars Date: Mon, 25 Sep 2023 15:17:02 +0800 Subject: [PATCH 1/2] feat(plugin): add plugins status api --- .../controller_admin/plugin_controller.go | 31 +++++++++++++++++++ internal/router/answer_api_router.go | 3 ++ internal/schema/plugin_admin_schema.go | 5 +++ 3 files changed, 39 insertions(+) diff --git a/internal/controller_admin/plugin_controller.go b/internal/controller_admin/plugin_controller.go index e565f2bd..930fffd0 100644 --- a/internal/controller_admin/plugin_controller.go +++ b/internal/controller_admin/plugin_controller.go @@ -20,6 +20,37 @@ func NewPluginController(PluginCommonService *plugin_common.PluginCommonService) return &PluginController{PluginCommonService: PluginCommonService} } +// GetAllPluginStatus get all plugins status +// @Summary get all plugins status +// @Description get all plugins status +// @Tags Plugin +// @Security ApiKeyAuth +// @Accept json +// @Produce json +// @Success 200 {object} handler.RespBody{data=[]schema.GetPluginListResp} +// @Router /answer/api/v1/plugin/status [get] +func (pc *PluginController) GetAllPluginStatus(ctx *gin.Context) { + resp := make([]*schema.GetAllPluginStatusResp, 0) + _ = plugin.CallBase(func(base plugin.Base) error { + info := base.Info() + resp = append(resp, &schema.GetAllPluginStatusResp{ + SlugName: info.SlugName, + Enabled: plugin.StatusManager.IsEnabled(info.SlugName), + }) + return nil + }) + + resp = append(resp, &schema.GetAllPluginStatusResp{ + SlugName: "chart_editor", + Enabled: true, + }) + resp = append(resp, &schema.GetAllPluginStatusResp{ + SlugName: "formula_editor", + Enabled: true, + }) + handler.HandleResponse(ctx, nil, resp) +} + // GetPluginList get plugin list // @Summary get plugin list // @Description get plugin list diff --git a/internal/router/answer_api_router.go b/internal/router/answer_api_router.go index 4f196042..43509067 100644 --- a/internal/router/answer_api_router.go +++ b/internal/router/answer_api_router.go @@ -115,6 +115,9 @@ func (a *AnswerAPIRouter) RegisterMustUnAuthAnswerAPIRouter(authUserMiddleware * routerGroup.POST("/user/password/reset", a.userController.RetrievePassWord) routerGroup.POST("/user/password/replacement", a.userController.UseRePassWord) routerGroup.PUT("/user/notification/unsubscribe", a.userController.UserUnsubscribeNotification) + + // plugins + r.GET("/plugin/status", a.pluginController.GetAllPluginStatus) } func (a *AnswerAPIRouter) RegisterUnAuthAnswerAPIRouter(r *gin.RouterGroup) { diff --git a/internal/schema/plugin_admin_schema.go b/internal/schema/plugin_admin_schema.go index 7684e264..1b1ea90d 100644 --- a/internal/schema/plugin_admin_schema.go +++ b/internal/schema/plugin_admin_schema.go @@ -27,6 +27,11 @@ type GetPluginListResp struct { Link string `json:"link"` } +type GetAllPluginStatusResp struct { + SlugName string `json:"slug_name"` + Enabled bool `json:"enabled"` +} + type UpdatePluginStatusReq struct { PluginSlugName string `validate:"required,gt=1,lte=100" json:"plugin_slug_name"` Enabled bool `json:"enabled"` From cd08586264e44823ed00ae99f54d6a97e2ed44b8 Mon Sep 17 00:00:00 2001 From: LinkinStars Date: Tue, 17 Oct 2023 15:57:42 +0800 Subject: [PATCH 2/2] fix(plugin): remove default plugins --- internal/controller_admin/plugin_controller.go | 9 --------- 1 file changed, 9 deletions(-) diff --git a/internal/controller_admin/plugin_controller.go b/internal/controller_admin/plugin_controller.go index 930fffd0..61b058b9 100644 --- a/internal/controller_admin/plugin_controller.go +++ b/internal/controller_admin/plugin_controller.go @@ -39,15 +39,6 @@ func (pc *PluginController) GetAllPluginStatus(ctx *gin.Context) { }) return nil }) - - resp = append(resp, &schema.GetAllPluginStatusResp{ - SlugName: "chart_editor", - Enabled: true, - }) - resp = append(resp, &schema.GetAllPluginStatusResp{ - SlugName: "formula_editor", - Enabled: true, - }) handler.HandleResponse(ctx, nil, resp) }