coze-studio/backend/api/model/crossdomain/plugin/convert.go

271 lines
8.0 KiB
Go

package plugin
import (
"net/http"
"github.com/getkin/kin-openapi/openapi3"
common "github.com/coze-dev/coze-studio/backend/api/model/plugin_develop_common"
)
var httpParamLocations = map[common.ParameterLocation]HTTPParamLocation{
common.ParameterLocation_Path: ParamInPath,
common.ParameterLocation_Query: ParamInQuery,
common.ParameterLocation_Body: ParamInBody,
common.ParameterLocation_Header: ParamInHeader,
}
func ToHTTPParamLocation(loc common.ParameterLocation) (HTTPParamLocation, bool) {
_loc, ok := httpParamLocations[loc]
return _loc, ok
}
var thriftHTTPParamLocations = func() map[HTTPParamLocation]common.ParameterLocation {
locations := make(map[HTTPParamLocation]common.ParameterLocation, len(httpParamLocations))
for k, v := range httpParamLocations {
locations[v] = k
}
return locations
}()
func ToThriftHTTPParamLocation(loc HTTPParamLocation) (common.ParameterLocation, bool) {
_loc, ok := thriftHTTPParamLocations[loc]
return _loc, ok
}
var openapiTypes = map[common.ParameterType]string{
common.ParameterType_String: openapi3.TypeString,
common.ParameterType_Integer: openapi3.TypeInteger,
common.ParameterType_Number: openapi3.TypeNumber,
common.ParameterType_Object: openapi3.TypeObject,
common.ParameterType_Array: openapi3.TypeArray,
common.ParameterType_Bool: openapi3.TypeBoolean,
}
func ToOpenapiParamType(typ common.ParameterType) (string, bool) {
_typ, ok := openapiTypes[typ]
return _typ, ok
}
var thriftParameterTypes = func() map[string]common.ParameterType {
types := make(map[string]common.ParameterType, len(openapiTypes))
for k, v := range openapiTypes {
types[v] = k
}
return types
}()
func ToThriftParamType(typ string) (common.ParameterType, bool) {
_typ, ok := thriftParameterTypes[typ]
return _typ, ok
}
var apiAssistTypes = map[common.AssistParameterType]APIFileAssistType{
common.AssistParameterType_DEFAULT: AssistTypeFile,
common.AssistParameterType_IMAGE: AssistTypeImage,
common.AssistParameterType_DOC: AssistTypeDoc,
common.AssistParameterType_PPT: AssistTypePPT,
common.AssistParameterType_CODE: AssistTypeCode,
common.AssistParameterType_EXCEL: AssistTypeExcel,
common.AssistParameterType_ZIP: AssistTypeZIP,
common.AssistParameterType_VIDEO: AssistTypeVideo,
common.AssistParameterType_AUDIO: AssistTypeAudio,
common.AssistParameterType_TXT: AssistTypeTXT,
}
func ToAPIAssistType(typ common.AssistParameterType) (APIFileAssistType, bool) {
_typ, ok := apiAssistTypes[typ]
return _typ, ok
}
var thriftAPIAssistTypes = func() map[APIFileAssistType]common.AssistParameterType {
types := make(map[APIFileAssistType]common.AssistParameterType, len(apiAssistTypes))
for k, v := range apiAssistTypes {
types[v] = k
}
return types
}()
func ToThriftAPIAssistType(typ APIFileAssistType) (common.AssistParameterType, bool) {
_typ, ok := thriftAPIAssistTypes[typ]
return _typ, ok
}
func IsValidAPIAssistType(typ APIFileAssistType) bool {
_, ok := thriftAPIAssistTypes[typ]
return ok
}
var httpMethods = map[common.APIMethod]string{
common.APIMethod_GET: http.MethodGet,
common.APIMethod_POST: http.MethodPost,
common.APIMethod_PUT: http.MethodPut,
common.APIMethod_DELETE: http.MethodDelete,
common.APIMethod_PATCH: http.MethodPatch,
}
var thriftAPIMethods = func() map[string]common.APIMethod {
methods := make(map[string]common.APIMethod, len(httpMethods))
for k, v := range httpMethods {
methods[v] = k
}
return methods
}()
func ToThriftAPIMethod(method string) (common.APIMethod, bool) {
_method, ok := thriftAPIMethods[method]
return _method, ok
}
func ToHTTPMethod(method common.APIMethod) (string, bool) {
_method, ok := httpMethods[method]
return _method, ok
}
var assistTypeToFormat = map[APIFileAssistType]string{
AssistTypeFile: "file_url",
AssistTypeImage: "image_url",
AssistTypeDoc: "doc_url",
AssistTypePPT: "ppt_url",
AssistTypeCode: "code_url",
AssistTypeExcel: "excel_url",
AssistTypeZIP: "zip_url",
AssistTypeVideo: "video_url",
AssistTypeAudio: "audio_url",
AssistTypeTXT: "txt_url",
}
func AssistTypeToFormat(typ APIFileAssistType) (string, bool) {
format, ok := assistTypeToFormat[typ]
return format, ok
}
var formatToAssistType = func() map[string]APIFileAssistType {
types := make(map[string]APIFileAssistType, len(assistTypeToFormat))
for k, v := range assistTypeToFormat {
types[v] = k
}
return types
}()
func FormatToAssistType(format string) (APIFileAssistType, bool) {
typ, ok := formatToAssistType[format]
return typ, ok
}
var assistTypeToThriftFormat = map[APIFileAssistType]common.PluginParamTypeFormat{
AssistTypeFile: common.PluginParamTypeFormat_FileUrl,
AssistTypeImage: common.PluginParamTypeFormat_ImageUrl,
AssistTypeDoc: common.PluginParamTypeFormat_DocUrl,
AssistTypePPT: common.PluginParamTypeFormat_PptUrl,
AssistTypeCode: common.PluginParamTypeFormat_CodeUrl,
AssistTypeExcel: common.PluginParamTypeFormat_ExcelUrl,
AssistTypeZIP: common.PluginParamTypeFormat_ZipUrl,
AssistTypeVideo: common.PluginParamTypeFormat_VideoUrl,
AssistTypeAudio: common.PluginParamTypeFormat_AudioUrl,
AssistTypeTXT: common.PluginParamTypeFormat_TxtUrl,
}
func AssistTypeToThriftFormat(typ APIFileAssistType) (common.PluginParamTypeFormat, bool) {
format, ok := assistTypeToThriftFormat[typ]
return format, ok
}
var authTypes = map[common.AuthorizationType]AuthzType{
common.AuthorizationType_None: AuthzTypeOfNone,
common.AuthorizationType_Service: AuthzTypeOfService,
common.AuthorizationType_OAuth: AuthzTypeOfOAuth,
common.AuthorizationType_Standard: AuthzTypeOfOAuth, // deprecated, the same as OAuth
}
func ToAuthType(typ common.AuthorizationType) (AuthzType, bool) {
_type, ok := authTypes[typ]
return _type, ok
}
var thriftAuthTypes = func() map[AuthzType]common.AuthorizationType {
types := make(map[AuthzType]common.AuthorizationType, len(authTypes))
for k, v := range authTypes {
if v == AuthzTypeOfOAuth {
types[v] = common.AuthorizationType_OAuth
} else {
types[v] = k
}
}
return types
}()
func ToThriftAuthType(typ AuthzType) (common.AuthorizationType, bool) {
_type, ok := thriftAuthTypes[typ]
return _type, ok
}
var subAuthTypes = map[int32]AuthzSubType{
int32(common.ServiceAuthSubType_ApiKey): AuthzSubTypeOfServiceAPIToken,
int32(common.ServiceAuthSubType_OAuthAuthorizationCode): AuthzSubTypeOfOAuthAuthorizationCode,
}
func ToAuthSubType(typ int32) (AuthzSubType, bool) {
_type, ok := subAuthTypes[typ]
return _type, ok
}
var thriftSubAuthTypes = func() map[AuthzSubType]int32 {
types := make(map[AuthzSubType]int32, len(subAuthTypes))
for k, v := range subAuthTypes {
types[v] = int32(k)
}
return types
}()
func ToThriftAuthSubType(typ AuthzSubType) (int32, bool) {
_type, ok := thriftSubAuthTypes[typ]
return _type, ok
}
var pluginTypes = map[common.PluginType]PluginType{
common.PluginType_PLUGIN: PluginTypeOfCloud,
}
func ToPluginType(typ common.PluginType) (PluginType, bool) {
_type, ok := pluginTypes[typ]
return _type, ok
}
var thriftPluginTypes = func() map[PluginType]common.PluginType {
types := make(map[PluginType]common.PluginType, len(pluginTypes))
for k, v := range pluginTypes {
types[v] = k
}
return types
}()
func ToThriftPluginType(typ PluginType) (common.PluginType, bool) {
_type, ok := thriftPluginTypes[typ]
return _type, ok
}
var apiAuthModes = map[common.PluginToolAuthType]ToolAuthMode{
common.PluginToolAuthType_Required: ToolAuthModeOfRequired,
common.PluginToolAuthType_Supported: ToolAuthModeOfSupported,
common.PluginToolAuthType_Disable: ToolAuthModeOfDisabled,
}
func ToAPIAuthMode(mode common.PluginToolAuthType) (ToolAuthMode, bool) {
_mode, ok := apiAuthModes[mode]
return _mode, ok
}
var thriftAPIAuthModes = func() map[ToolAuthMode]common.PluginToolAuthType {
modes := make(map[ToolAuthMode]common.PluginToolAuthType, len(apiAuthModes))
for k, v := range apiAuthModes {
modes[v] = k
}
return modes
}()
func ToThriftAPIAuthMode(mode ToolAuthMode) (common.PluginToolAuthType, bool) {
_mode, ok := thriftAPIAuthModes[mode]
return _mode, ok
}