feat: manually mirror opencoze's code from bytedance
Change-Id: I09a73aadda978ad9511264a756b2ce51f5761adf
This commit is contained in:
915
backend/api/handler/coze/plugin_develop_service.go
Normal file
915
backend/api/handler/coze/plugin_develop_service.go
Normal file
@@ -0,0 +1,915 @@
|
||||
/*
|
||||
* Copyright 2025 coze-dev Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by hertz generator.
|
||||
|
||||
package coze
|
||||
|
||||
import (
|
||||
"context"
|
||||
"regexp"
|
||||
|
||||
"github.com/cloudwego/hertz/pkg/app"
|
||||
"github.com/cloudwego/hertz/pkg/protocol/consts"
|
||||
|
||||
"github.com/coze-dev/coze-studio/backend/api/model/ocean/cloud/plugin_develop"
|
||||
common "github.com/coze-dev/coze-studio/backend/api/model/plugin_develop_common"
|
||||
"github.com/coze-dev/coze-studio/backend/application/plugin"
|
||||
appworkflow "github.com/coze-dev/coze-studio/backend/application/workflow"
|
||||
)
|
||||
|
||||
// GetPlaygroundPluginList .
|
||||
// @router /api/plugin_api/get_playground_plugin_list [POST]
|
||||
func GetPlaygroundPluginList(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.GetPlaygroundPluginListRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if req.GetSpaceID() <= 0 {
|
||||
invalidParamRequestResponse(c, "spaceID is invalid")
|
||||
return
|
||||
}
|
||||
if req.GetPage() <= 0 {
|
||||
invalidParamRequestResponse(c, "page is invalid")
|
||||
return
|
||||
}
|
||||
if req.GetSize() >= 30 {
|
||||
invalidParamRequestResponse(c, "size is invalid")
|
||||
return
|
||||
}
|
||||
|
||||
// when there is only one element in the types list, and the element type is workflow, use workflow service
|
||||
// TODO Figure out when there are multiple values for types
|
||||
if len(req.GetPluginTypes()) == 1 && req.GetPluginTypes()[0] == int32(common.PluginType_WORKFLOW) {
|
||||
resp, err := appworkflow.SVC.GetPlaygroundPluginList(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.GetPlaygroundPluginList(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// RegisterPluginMeta .
|
||||
// @router /api/plugin_api/register_plugin_meta [POST]
|
||||
func RegisterPluginMeta(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.RegisterPluginMetaRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if req.GetName() == "" {
|
||||
invalidParamRequestResponse(c, "plugin name is invalid")
|
||||
return
|
||||
}
|
||||
if req.GetDesc() == "" {
|
||||
invalidParamRequestResponse(c, "plugin desc is invalid")
|
||||
return
|
||||
}
|
||||
if req.URL != nil && (*req.URL == "" || len(*req.URL) > 512) {
|
||||
invalidParamRequestResponse(c, "plugin url is invalid")
|
||||
return
|
||||
}
|
||||
if req.Icon == nil || req.Icon.URI == "" || len(req.Icon.URI) > 512 {
|
||||
invalidParamRequestResponse(c, "plugin icon is invalid")
|
||||
return
|
||||
}
|
||||
if req.AuthType == nil {
|
||||
invalidParamRequestResponse(c, "plugin auth type is invalid")
|
||||
return
|
||||
}
|
||||
if req.SpaceID <= 0 {
|
||||
invalidParamRequestResponse(c, "spaceID is invalid")
|
||||
return
|
||||
}
|
||||
if req.ProjectID != nil {
|
||||
if *req.ProjectID <= 0 {
|
||||
invalidParamRequestResponse(c, "projectID is invalid")
|
||||
return
|
||||
}
|
||||
}
|
||||
if req.GetPluginType() != common.PluginType_PLUGIN {
|
||||
invalidParamRequestResponse(c, "plugin type is invalid")
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.RegisterPluginMeta(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// GetPluginAPIs .
|
||||
// @router /api/plugin_api/get_plugin_apis [POST]
|
||||
func GetPluginAPIs(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.GetPluginAPIsRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if req.PluginID <= 0 {
|
||||
invalidParamRequestResponse(c, "pluginID is invalid")
|
||||
return
|
||||
}
|
||||
if len(req.APIIds) == 0 {
|
||||
if req.Page <= 0 {
|
||||
invalidParamRequestResponse(c, "page is invalid")
|
||||
return
|
||||
}
|
||||
if req.Size >= 30 {
|
||||
invalidParamRequestResponse(c, "size is invalid")
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.GetPluginAPIs(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// GetPluginInfo .
|
||||
// @router /api/plugin_api/get_plugin_info [POST]
|
||||
func GetPluginInfo(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.GetPluginInfoRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if req.PluginID <= 0 {
|
||||
invalidParamRequestResponse(c, "pluginID is invalid")
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.GetPluginInfo(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// GetUpdatedAPIs .
|
||||
// @router /api/plugin_api/get_updated_apis [POST]
|
||||
func GetUpdatedAPIs(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.GetUpdatedAPIsRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if req.PluginID <= 0 {
|
||||
invalidParamRequestResponse(c, "pluginID is invalid")
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.GetUpdatedAPIs(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// GetOAuthStatus .
|
||||
// @router /api/plugin_api/get_oauth_status [POST]
|
||||
func GetOAuthStatus(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.GetOAuthStatusRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if req.PluginID <= 0 {
|
||||
invalidParamRequestResponse(c, "pluginID is invalid")
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.GetOAuthStatus(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// CheckAndLockPluginEdit .
|
||||
// @router /api/plugin_api/check_and_lock_plugin_edit [POST]
|
||||
func CheckAndLockPluginEdit(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.CheckAndLockPluginEditRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if req.PluginID <= 0 {
|
||||
invalidParamRequestResponse(c, "pluginID is invalid")
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.CheckAndLockPluginEdit(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// UpdatePlugin .
|
||||
// @router /api/plugin_api/update [POST]
|
||||
func UpdatePlugin(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.UpdatePluginRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if req.PluginID <= 0 {
|
||||
invalidParamRequestResponse(c, "pluginID is invalid")
|
||||
return
|
||||
}
|
||||
if req.AiPlugin == "" {
|
||||
invalidParamRequestResponse(c, "plugin manifest is invalid")
|
||||
return
|
||||
}
|
||||
if req.Openapi == "" {
|
||||
invalidParamRequestResponse(c, "plugin openapi doc is invalid")
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.UpdatePlugin(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// DeleteAPI .
|
||||
// @router /api/plugin_api/delete_api [POST]
|
||||
func DeleteAPI(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.DeleteAPIRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if req.PluginID <= 0 {
|
||||
invalidParamRequestResponse(c, "pluginID is invalid")
|
||||
return
|
||||
}
|
||||
if req.APIID <= 0 {
|
||||
invalidParamRequestResponse(c, "apiID is invalid")
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.DeleteAPI(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// DelPlugin .
|
||||
// @router /api/plugin_api/del_plugin [POST]
|
||||
func DelPlugin(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.DelPluginRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if req.PluginID <= 0 {
|
||||
invalidParamRequestResponse(c, "pluginID is invalid")
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.DelPlugin(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// PublishPlugin .
|
||||
// @router /api/plugin_api/publish_plugin [POST]
|
||||
func PublishPlugin(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.PublishPluginRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if req.PluginID <= 0 {
|
||||
invalidParamRequestResponse(c, "pluginID is invalid")
|
||||
return
|
||||
}
|
||||
if req.VersionName == "" || len(req.VersionName) > 255 {
|
||||
invalidParamRequestResponse(c, "version name is invalid")
|
||||
return
|
||||
}
|
||||
|
||||
match, _ := regexp.MatchString(`^v\d+\.\d+\.\d+$`, req.VersionName)
|
||||
if !match {
|
||||
invalidParamRequestResponse(c, "version name is invalid")
|
||||
return
|
||||
}
|
||||
|
||||
if req.VersionDesc == "" {
|
||||
invalidParamRequestResponse(c, "version desc is invalid")
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.PublishPlugin(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// UpdatePluginMeta .
|
||||
// @router /api/plugin_api/update_plugin_meta [POST]
|
||||
func UpdatePluginMeta(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.UpdatePluginMetaRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if req.PluginID <= 0 {
|
||||
invalidParamRequestResponse(c, "pluginID is invalid")
|
||||
return
|
||||
}
|
||||
if req.Name != nil && *req.Name == "" {
|
||||
invalidParamRequestResponse(c, "plugin name is invalid")
|
||||
return
|
||||
}
|
||||
if req.Desc != nil && *req.Desc == "" {
|
||||
invalidParamRequestResponse(c, "plugin desc is invalid")
|
||||
return
|
||||
}
|
||||
if req.URL != nil && (*req.URL == "" || len(*req.URL) > 512) {
|
||||
invalidParamRequestResponse(c, "plugin server url is invalid")
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.UpdatePluginMeta(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// GetBotDefaultParams .
|
||||
// @router /api/plugin_api/get_bot_default_params [POST]
|
||||
func GetBotDefaultParams(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.GetBotDefaultParamsRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if req.SpaceID <= 0 {
|
||||
invalidParamRequestResponse(c, "spaceID is invalid")
|
||||
return
|
||||
}
|
||||
if req.BotID <= 0 {
|
||||
invalidParamRequestResponse(c, "botID is invalid")
|
||||
return
|
||||
}
|
||||
if req.PluginID <= 0 {
|
||||
invalidParamRequestResponse(c, "pluginID is invalid")
|
||||
return
|
||||
}
|
||||
if req.APIName == "" {
|
||||
invalidParamRequestResponse(c, "apiName is invalid")
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.GetBotDefaultParams(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// UpdateBotDefaultParams .
|
||||
// @router /api/plugin_api/update_bot_default_params [POST]
|
||||
func UpdateBotDefaultParams(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.UpdateBotDefaultParamsRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if req.SpaceID <= 0 {
|
||||
invalidParamRequestResponse(c, "spaceID is invalid")
|
||||
return
|
||||
}
|
||||
if req.BotID <= 0 {
|
||||
invalidParamRequestResponse(c, "botID is invalid")
|
||||
return
|
||||
}
|
||||
if req.PluginID <= 0 {
|
||||
invalidParamRequestResponse(c, "pluginID is invalid")
|
||||
return
|
||||
}
|
||||
if req.APIName == "" {
|
||||
invalidParamRequestResponse(c, "apiName is invalid")
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.UpdateBotDefaultParams(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// CreateAPI .
|
||||
// @router /api/plugin_api/create_api [POST]
|
||||
func CreateAPI(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.CreateAPIRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if req.PluginID <= 0 {
|
||||
invalidParamRequestResponse(c, "pluginID is invalid")
|
||||
return
|
||||
}
|
||||
if req.Name == "" || len(req.Name) > 255 {
|
||||
invalidParamRequestResponse(c, "api name is invalid")
|
||||
return
|
||||
}
|
||||
if req.Desc == "" {
|
||||
invalidParamRequestResponse(c, "api desc is invalid")
|
||||
return
|
||||
}
|
||||
if req.Path != nil && (*req.Path == "" || len(*req.Path) > 512) {
|
||||
invalidParamRequestResponse(c, "api path is invalid")
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.CreateAPI(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// UpdateAPI .
|
||||
// @router /api/plugin_api/update_api [POST]
|
||||
func UpdateAPI(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.UpdateAPIRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if req.PluginID <= 0 {
|
||||
invalidParamRequestResponse(c, "pluginID is invalid")
|
||||
return
|
||||
}
|
||||
if req.APIID <= 0 {
|
||||
invalidParamRequestResponse(c, "apiID is invalid")
|
||||
return
|
||||
}
|
||||
if req.Name != nil && (*req.Name == "" || len(*req.Name) > 255) {
|
||||
invalidParamRequestResponse(c, "api name is invalid")
|
||||
return
|
||||
}
|
||||
if req.Desc != nil && (*req.Desc == "" || len(*req.Desc) > 255) {
|
||||
invalidParamRequestResponse(c, "api desc is invalid")
|
||||
return
|
||||
}
|
||||
if req.Path != nil && (*req.Path == "" || len(*req.Path) > 512) {
|
||||
invalidParamRequestResponse(c, "api path is invalid")
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.UpdateAPI(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// GetUserAuthority .
|
||||
// @router /api/plugin_api/get_user_authority [POST]
|
||||
func GetUserAuthority(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.GetUserAuthorityRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if req.PluginID <= 0 {
|
||||
invalidParamRequestResponse(c, "pluginID is invalid")
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.GetUserAuthority(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// DebugAPI .
|
||||
// @router /api/plugin_api/debug_api [POST]
|
||||
func DebugAPI(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.DebugAPIRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if req.PluginID <= 0 {
|
||||
invalidParamRequestResponse(c, "pluginID is invalid")
|
||||
return
|
||||
}
|
||||
if req.APIID <= 0 {
|
||||
invalidParamRequestResponse(c, "apiID is invalid")
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.DebugAPI(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// UnlockPluginEdit .
|
||||
// @router /api/plugin_api/unlock_plugin_edit [POST]
|
||||
func UnlockPluginEdit(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.UnlockPluginEditRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.UnlockPluginEdit(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// GetPluginNextVersion .
|
||||
// @router /api/plugin_api/get_plugin_next_version [POST]
|
||||
func GetPluginNextVersion(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.GetPluginNextVersionRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.GetPluginNextVersion(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// RegisterPlugin .
|
||||
// @router /api/developer/register [POST]
|
||||
func RegisterPlugin(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.RegisterPluginRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if req.GetSpaceID() <= 0 {
|
||||
invalidParamRequestResponse(c, "spaceID is invalid")
|
||||
return
|
||||
}
|
||||
if req.ProjectID != nil && *req.ProjectID <= 0 {
|
||||
invalidParamRequestResponse(c, "projectID is invalid")
|
||||
return
|
||||
}
|
||||
if req.AiPlugin == "" {
|
||||
invalidParamRequestResponse(c, "plugin manifest is invalid")
|
||||
return
|
||||
}
|
||||
if req.Openapi == "" {
|
||||
invalidParamRequestResponse(c, "plugin openapi doc is invalid")
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.RegisterPlugin(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// GetDevPluginList .
|
||||
// @router /api/plugin_api/get_dev_plugin_list [POST]
|
||||
func GetDevPluginList(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.GetDevPluginListRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if req.SpaceID <= 0 {
|
||||
invalidParamRequestResponse(c, "spaceID is invalid")
|
||||
return
|
||||
}
|
||||
if req.ProjectID <= 0 {
|
||||
invalidParamRequestResponse(c, "projectID is invalid")
|
||||
return
|
||||
}
|
||||
if req.GetPage() <= 0 {
|
||||
invalidParamRequestResponse(c, "page is invalid")
|
||||
return
|
||||
}
|
||||
if req.GetSize() <= 0 {
|
||||
invalidParamRequestResponse(c, "size is invalid")
|
||||
return
|
||||
}
|
||||
if req.GetSize() > 50 {
|
||||
invalidParamRequestResponse(c, "size is too large")
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.GetDevPluginList(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// Convert2OpenAPI .
|
||||
// @router /api/plugin_api/convert_to_openapi [POST]
|
||||
func Convert2OpenAPI(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.Convert2OpenAPIRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if req.SpaceID <= 0 {
|
||||
invalidParamRequestResponse(c, "spaceID is invalid")
|
||||
return
|
||||
}
|
||||
if req.Data == "" {
|
||||
invalidParamRequestResponse(c, "data is invalid")
|
||||
return
|
||||
}
|
||||
if req.PluginURL != nil && *req.PluginURL == "" {
|
||||
invalidParamRequestResponse(c, "pluginURL is invalid")
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.Convert2OpenAPI(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// GetOAuthSchemaAPI .
|
||||
// @router /api/plugin_api/get_oauth_schema [POST]
|
||||
func GetOAuthSchemaAPI(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.GetOAuthSchemaRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.GetOAuthSchema(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// GetOAuthSchema .
|
||||
// @router /api/plugin/get_oauth_schema [POST]
|
||||
func GetOAuthSchema(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.GetOAuthSchemaRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.GetOAuthSchema(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// BatchCreateAPI .
|
||||
// @router /api/plugin_api/batch_create_api [POST]
|
||||
func BatchCreateAPI(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.BatchCreateAPIRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if req.SpaceID <= 0 {
|
||||
invalidParamRequestResponse(c, "spaceID is invalid")
|
||||
return
|
||||
}
|
||||
if req.PluginID <= 0 {
|
||||
invalidParamRequestResponse(c, "pluginID is invalid")
|
||||
return
|
||||
}
|
||||
if req.AiPlugin == "" {
|
||||
invalidParamRequestResponse(c, "plugin manifest is invalid")
|
||||
return
|
||||
}
|
||||
if req.Openapi == "" {
|
||||
invalidParamRequestResponse(c, "plugin openapi doc is invalid")
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.BatchCreateAPI(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// RevokeAuthToken .
|
||||
// @router /api/plugin_api/revoke_auth_token [POST]
|
||||
func RevokeAuthToken(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.RevokeAuthTokenRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if req.PluginID <= 0 {
|
||||
invalidParamRequestResponse(c, "pluginID is invalid")
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.RevokeAuthToken(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// GetQueriedOAuthPluginList .
|
||||
// @router /api/plugin_api/get_queried_oauth_plugins [POST]
|
||||
func GetQueriedOAuthPluginList(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req plugin_develop.GetQueriedOAuthPluginListRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
invalidParamRequestResponse(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if req.BotID <= 0 {
|
||||
invalidParamRequestResponse(c, "entityID is required")
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := plugin.PluginApplicationSVC.GetQueriedOAuthPluginList(ctx, &req)
|
||||
if err != nil {
|
||||
internalServerErrorResponse(ctx, c, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
Reference in New Issue
Block a user