916 lines
22 KiB
Go
916 lines
22 KiB
Go
/*
|
|
* 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/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)
|
|
}
|