-
-
Notifications
You must be signed in to change notification settings - Fork 75
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
12 changed files
with
511 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,193 @@ | ||
package plugins | ||
|
||
import ( | ||
"github.com/goravel/framework/contracts/http" | ||
|
||
"github.com/TheTNB/panel/app/http/controllers" | ||
requests "github.com/TheTNB/panel/app/http/requests/plugins/gitea" | ||
"github.com/TheTNB/panel/pkg/tools" | ||
) | ||
|
||
type GiteaController struct { | ||
} | ||
|
||
func NewGiteaController() *GiteaController { | ||
return &GiteaController{} | ||
} | ||
|
||
// Status | ||
// | ||
// @Summary 服务状态 | ||
// @Description 获取 Gitea 服务状态 | ||
// @Tags 插件-Gitea | ||
// @Produce json | ||
// @Security BearerToken | ||
// @Success 200 {object} controllers.SuccessResponse | ||
// @Router /plugins/gitea/status [get] | ||
func (r *GiteaController) Status(ctx http.Context) http.Response { | ||
status, err := tools.ServiceStatus("gitea") | ||
if err != nil { | ||
return controllers.Error(ctx, http.StatusInternalServerError, "获取 Gitea 服务运行状态失败") | ||
} | ||
|
||
return controllers.Success(ctx, status) | ||
} | ||
|
||
// IsEnabled | ||
// | ||
// @Summary 是否启用服务 | ||
// @Description 获取是否启用 Gitea 服务 | ||
// @Tags 插件-Gitea | ||
// @Produce json | ||
// @Security BearerToken | ||
// @Success 200 {object} controllers.SuccessResponse | ||
// @Router /plugins/gitea/isEnabled [get] | ||
func (r *GiteaController) IsEnabled(ctx http.Context) http.Response { | ||
enabled, err := tools.ServiceIsEnabled("gitea") | ||
if err != nil { | ||
return controllers.Error(ctx, http.StatusInternalServerError, "获取 Gitea 服务启用状态失败") | ||
} | ||
|
||
return controllers.Success(ctx, enabled) | ||
} | ||
|
||
// Enable | ||
// | ||
// @Summary 启用服务 | ||
// @Description 启用 Gitea 服务 | ||
// @Tags 插件-Gitea | ||
// @Produce json | ||
// @Security BearerToken | ||
// @Success 200 {object} controllers.SuccessResponse | ||
// @Router /plugins/gitea/enable [post] | ||
func (r *GiteaController) Enable(ctx http.Context) http.Response { | ||
if err := tools.ServiceEnable("gitea"); err != nil { | ||
return controllers.Error(ctx, http.StatusInternalServerError, "启用 Gitea 服务失败") | ||
} | ||
|
||
return controllers.Success(ctx, nil) | ||
} | ||
|
||
// Disable | ||
// | ||
// @Summary 禁用服务 | ||
// @Description 禁用 Gitea 服务 | ||
// @Tags 插件-Gitea | ||
// @Produce json | ||
// @Security BearerToken | ||
// @Success 200 {object} controllers.SuccessResponse | ||
// @Router /plugins/gitea/disable [post] | ||
func (r *GiteaController) Disable(ctx http.Context) http.Response { | ||
if err := tools.ServiceDisable("gitea"); err != nil { | ||
return controllers.Error(ctx, http.StatusInternalServerError, "禁用 Gitea 服务失败") | ||
} | ||
|
||
return controllers.Success(ctx, nil) | ||
} | ||
|
||
// Restart | ||
// | ||
// @Summary 重启服务 | ||
// @Description 重启 Gitea 服务 | ||
// @Tags 插件-Gitea | ||
// @Produce json | ||
// @Security BearerToken | ||
// @Success 200 {object} controllers.SuccessResponse | ||
// @Router /plugins/gitea/restart [post] | ||
func (r *GiteaController) Restart(ctx http.Context) http.Response { | ||
if err := tools.ServiceRestart("gitea"); err != nil { | ||
return controllers.Error(ctx, http.StatusInternalServerError, "重启 Gitea 服务失败") | ||
} | ||
|
||
return controllers.Success(ctx, nil) | ||
} | ||
|
||
// Start | ||
// | ||
// @Summary 启动服务 | ||
// @Description 启动 Gitea 服务 | ||
// @Tags 插件-Gitea | ||
// @Produce json | ||
// @Security BearerToken | ||
// @Success 200 {object} controllers.SuccessResponse | ||
// @Router /plugins/gitea/start [post] | ||
func (r *GiteaController) Start(ctx http.Context) http.Response { | ||
if err := tools.ServiceStart("gitea"); err != nil { | ||
return controllers.Error(ctx, http.StatusInternalServerError, "启动 Gitea 服务失败") | ||
} | ||
|
||
status, err := tools.ServiceStatus("gitea") | ||
if err != nil { | ||
return controllers.Error(ctx, http.StatusInternalServerError, "获取 Gitea 服务运行状态失败") | ||
} | ||
|
||
return controllers.Success(ctx, status) | ||
} | ||
|
||
// Stop | ||
// | ||
// @Summary 停止服务 | ||
// @Description 停止 Gitea 服务 | ||
// @Tags 插件-Gitea | ||
// @Produce json | ||
// @Security BearerToken | ||
// @Success 200 {object} controllers.SuccessResponse | ||
// @Router /plugins/gitea/stop [post] | ||
func (r *GiteaController) Stop(ctx http.Context) http.Response { | ||
if err := tools.ServiceStop("gitea"); err != nil { | ||
return controllers.Error(ctx, http.StatusInternalServerError, "停止 Gitea 服务失败") | ||
} | ||
|
||
status, err := tools.ServiceStatus("gitea") | ||
if err != nil { | ||
return controllers.Error(ctx, http.StatusInternalServerError, "获取 Gitea 服务运行状态失败") | ||
} | ||
|
||
return controllers.Success(ctx, !status) | ||
} | ||
|
||
// GetConfig | ||
// | ||
// @Summary 获取配置 | ||
// @Description 获取 Gitea 配置 | ||
// @Tags 插件-Gitea | ||
// @Produce json | ||
// @Security BearerToken | ||
// @Success 200 {object} controllers.SuccessResponse | ||
// @Router /plugins/gitea/config [get] | ||
func (r *GiteaController) GetConfig(ctx http.Context) http.Response { | ||
config, err := tools.Read("/www/server/gitea/app.ini") | ||
if err != nil { | ||
return controllers.Error(ctx, http.StatusInternalServerError, err.Error()) | ||
} | ||
|
||
return controllers.Success(ctx, config) | ||
} | ||
|
||
// UpdateConfig | ||
// | ||
// @Summary 更新配置 | ||
// @Description 更新 Gitea 配置 | ||
// @Tags 插件-Gitea | ||
// @Produce json | ||
// @Security BearerToken | ||
// @Param data body requests.UpdateConfig true "request" | ||
// @Success 200 {object} controllers.SuccessResponse | ||
// @Router /plugins/gitea/config [post] | ||
func (r *GiteaController) UpdateConfig(ctx http.Context) http.Response { | ||
var updateRequest requests.UpdateConfig | ||
sanitize := controllers.Sanitize(ctx, &updateRequest) | ||
if sanitize != nil { | ||
return sanitize | ||
} | ||
|
||
if err := tools.Write("/www/server/gitea/app.ini", updateRequest.Config, 0644); err != nil { | ||
return controllers.Error(ctx, http.StatusInternalServerError, err.Error()) | ||
} | ||
|
||
if err := tools.ServiceRestart("gitea"); err != nil { | ||
return controllers.Error(ctx, http.StatusInternalServerError, err.Error()) | ||
} | ||
|
||
return controllers.Success(ctx, nil) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
package requests | ||
|
||
import ( | ||
"github.com/goravel/framework/contracts/http" | ||
"github.com/goravel/framework/contracts/validation" | ||
) | ||
|
||
type UpdateConfig struct { | ||
Config string `form:"config" json:"config"` | ||
} | ||
|
||
func (r *UpdateConfig) Authorize(ctx http.Context) error { | ||
return nil | ||
} | ||
|
||
func (r *UpdateConfig) Rules(ctx http.Context) map[string]string { | ||
return map[string]string{ | ||
"config": "required|string", | ||
} | ||
} | ||
|
||
func (r *UpdateConfig) Messages(ctx http.Context) map[string]string { | ||
return map[string]string{} | ||
} | ||
|
||
func (r *UpdateConfig) Attributes(ctx http.Context) map[string]string { | ||
return map[string]string{} | ||
} | ||
|
||
func (r *UpdateConfig) PrepareForValidation(ctx http.Context, data validation.Data) error { | ||
return nil | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.