Help us shape the future of Go! Take the 2026 Go Developer Survey

handler

package
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 27, 2026 License: MIT Imports: 41 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetDefaultIOSchame

func GetDefaultIOSchame() string

func GetInitScript

func GetInitScript(scriptType string) string

func RegisterOnlyOfficeRoutes

func RegisterOnlyOfficeRoutes(r *gin.Engine, proxyHandler *ProxyHandler)

func RegisterProjectDocsRoute

func RegisterProjectDocsRoute(r *gin.Engine, cfg *config.Config)

RegisterProjectDocsRoute registers project docs entry route. It maps: - GET /docs/:projectid to {base_dir}/data/{projectid}/docs/index.html - GET /docs/:projectid/*filepath to {base_dir}/data/{projectid}/docs/*filepath

Types

type AnalysisHandler

type AnalysisHandler struct {
	// contains filtered or unexported fields
}

func NewAnalysisHandler

func NewAnalysisHandler(
	analysisService interfaces.AnalysisService,
	projectService interfaces.ProjectService,
	projectRepo interfaces.ProjectRepository,
	workflowService interfaces.WorkflowService,
	dataService interfaces.DataService,
	containerService interfaces.ContainerService,
	analysisRepo interfaces.AnalysisRepository,
	dagOrchestrator interfaces.DagOrchestrator,
	dynamicDagOrchestrator interfaces.DynamicDagOrchestrator,
	dataflowDagOrchestrator interfaces.DataflowDagOrchestrator,
	nodeOrchestrator interfaces.NodeOrchestrator,
	cfg *config.Config,
) *AnalysisHandler

func (*AnalysisHandler) AnalysisNodeLogs

func (h *AnalysisHandler) AnalysisNodeLogs(c *gin.Context)

func (*AnalysisHandler) AnalysisNodeParams

func (h *AnalysisHandler) AnalysisNodeParams(c *gin.Context)

func (*AnalysisHandler) DeleteAnalysis

func (h *AnalysisHandler) DeleteAnalysis(c *gin.Context)

DeleteAnalysis godoc @Summary 删除分析任务 @Description 按 analysisId 删除分析任务,同时清理关联的 analysis_nodes、analysis_edges、container_instances 及工作目录 @Tags 分析 @Produce json @Param analysisId path string true "分析 ID" @Success 200 {object} map[string]string @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /analysis/delete/{analysisId} [post]

func (*AnalysisHandler) DeleteAnalysisNode

func (h *AnalysisHandler) DeleteAnalysisNode(c *gin.Context)

DeleteAnalysisNode godoc @Summary 删除分析节点 @Description 按 analysisNodeId 删除分析节点记录 @Tags 分析 @Produce json @Param analysisNodeId path string true "分析节点 ID" @Success 200 {object} map[string]string @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /analysis/node/delete/{analysisNodeId} [post]

func (*AnalysisHandler) EditNodeParams

func (h *AnalysisHandler) EditNodeParams(c *gin.Context)

EditNodeParams godoc @Summary 编辑分析节点参数 @Description 依次查询 AnalysisNode、Analysis、Workflow(dag_definition)、Module(io_schema) 后组装 formJson @Tags 分析 @Produce json @Param analysisNodeId path string true "分析节点 ID" @Success 200 {object} handler.EditNodeParamsResponse @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /analysis/edit-node-params/{analysisNodeId} [post]

func (*AnalysisHandler) EditParamsV2

func (h *AnalysisHandler) EditParamsV2(c *gin.Context)

EditParamsV2 godoc @Summary 编辑分析参数(V2) @Description 查询 analysis 基础信息,并按 workflowId 复用工作流表单逻辑返回 formJson 与 analysis_result @Tags 分析 @Produce json @Param analysisId path string true "分析 ID" @Success 200 {object} handler.EditParamsV2Response @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /analysis/edit-params-v2/{analysisId} [post]

func (*AnalysisHandler) GetAnalysisNode

func (h *AnalysisHandler) GetAnalysisNode(c *gin.Context) *types.AnalysisNode

func (*AnalysisHandler) ListAnalysisTree

func (h *AnalysisHandler) ListAnalysisTree(c *gin.Context)

ListAnalysisTree godoc @Summary 分析树列表 @Description 兼容 Python /list-analysis-tree,按 workflow(relation) 分组返回分析树,子节点 key 使用 analysis_id @Tags 分析 @Accept json @Produce json @Param request body handler.listAnalysisTreeRequest true "查询参数" @Success 200 {array} handler.listAnalysisTreeParent @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /list-analysis-tree [post]

func (*AnalysisHandler) PageAnalysisByProject

func (h *AnalysisHandler) PageAnalysisByProject(c *gin.Context)

PageAnalysisByProject godoc @Summary 按当前项目分页查询分析任务 @Description 默认按当前用户 active project 的 project_id 过滤,支持可选 query 条件 @Tags 分析 @Accept json @Produce json @Param request body handler.analysisByProjectPageRequest true "分页请求参数" @Success 200 {object} map[string]interface{} @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /analysis/list-by-project-page [post]

func (*AnalysisHandler) PageAnalysisNodeByProject

func (h *AnalysisHandler) PageAnalysisNodeByProject(c *gin.Context)

PageAnalysisNodeByProject godoc @Summary 按当前项目分页查询分析节点 @Description 默认按当前用户 active project 的 project_id 过滤,支持可选 script_id @Tags 分析 @Accept json @Produce json @Param request body handler.analysisNodeByProjectPageRequest true "分页请求参数" @Success 200 {object} map[string]interface{} @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /analysis/node/list-by-project-page [post]

func (*AnalysisHandler) ParseParams

func (h *AnalysisHandler) ParseParams(c *gin.Context)

func (*AnalysisHandler) PublishScriptAnalysisNodeToDoc

func (h *AnalysisHandler) PublishScriptAnalysisNodeToDoc(c *gin.Context)

func (*AnalysisHandler) PublishToDocByAnalysisID

func (h *AnalysisHandler) PublishToDocByAnalysisID(c *gin.Context)

func (*AnalysisHandler) PublishToDocByAnalysisNodeID

func (h *AnalysisHandler) PublishToDocByAnalysisNodeID(c *gin.Context)

func (*AnalysisHandler) PublishToDocByWorkflowID

func (h *AnalysisHandler) PublishToDocByWorkflowID(c *gin.Context)

func (*AnalysisHandler) RunAnalysisNode

func (h *AnalysisHandler) RunAnalysisNode(c *gin.Context)

func (*AnalysisHandler) RunAnalysisNodeByScriptID

func (h *AnalysisHandler) RunAnalysisNodeByScriptID(c *gin.Context)

RunAnalysisNodeByScriptID 批量运行 script 下所有 creation_source=standalone 的 analysis node

func (*AnalysisHandler) RunAnalysisNodeWithID

func (h *AnalysisHandler) RunAnalysisNodeWithID(ctx context.Context, analsyisNodeId int64) error

func (*AnalysisHandler) SaveAnalysisController

func (h *AnalysisHandler) SaveAnalysisController(c *gin.Context)

func (*AnalysisHandler) SaveAnalysisControllerV2

func (h *AnalysisHandler) SaveAnalysisControllerV2(c *gin.Context)

SaveAnalysisControllerV2 keeps the current JSON dag definition and analysis schema, but starts a dynamic Nextflow-like scheduler path that materializes analysis nodes at runtime.

func (*AnalysisHandler) SaveAnalysisControllerV3

func (h *AnalysisHandler) SaveAnalysisControllerV3(c *gin.Context)

SaveAnalysisControllerV3 keeps the current request payload and persistence schema, while using the V3 dataflow orchestrator entry (Nextflow-like model).

func (*AnalysisHandler) SaveAnalysisNodeControllerWithScript

func (h *AnalysisHandler) SaveAnalysisNodeControllerWithScript(c *gin.Context)

func (*AnalysisHandler) StopAnalysis

func (h *AnalysisHandler) StopAnalysis(c *gin.Context)

func (*AnalysisHandler) StopAnalysisNode

func (h *AnalysisHandler) StopAnalysisNode(c *gin.Context)

func (*AnalysisHandler) ToggleAnalysisReport

func (h *AnalysisHandler) ToggleAnalysisReport(c *gin.Context)

ToggleAnalysisReport godoc @Summary 切换分析任务的 is_report 状态 @Description 按 analysisId 切换 is_report 字段的 true/false 值 @Tags 分析 @Produce json @Param analysisId path string true "分析 ID" @Success 200 {object} map[string]interface{} @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /analysis/toggle-report/{analysisId} [post]

func (*AnalysisHandler) VisualizationNodeFile

func (h *AnalysisHandler) VisualizationNodeFile(c *gin.Context)

VisualizationNodeFile godoc @Summary 分析节点结果文件可视化 @Description 查询 AnalysisNode 并补充容器模板与镜像信息,同时返回 output_dir 下可视化资源列表 @Tags 分析 @Produce json @Param analysisNodeId path string true "分析节点 ID" @Success 200 {object} handler.VisualizationNodeFileResponse @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /analysis/visualization-node-file/{analysisNodeId} [get]

func (*AnalysisHandler) VisualizationNodeTree

func (h *AnalysisHandler) VisualizationNodeTree(c *gin.Context)

VisualizationNodeTree godoc @Summary 分析节点树可视化 @Description 按 workflow dag_definition 的脚本节点分组,返回 analysis nodes 树结构 @Tags 分析 @Produce json @Param analysisId path string true "分析 ID" @Success 200 {object} handler.VisualizationNodeTreeResponse @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /analysis/visualization-node-tree/{analysisId} [get]

type AuthHandler

type AuthHandler struct {
	// contains filtered or unexported fields
}

AuthHandler implements HTTP request handlers for user authentication Provides functionality for user registration, login, logout, and token management through the REST API endpoints

func NewAuthHandler

func NewAuthHandler(configInfo *config.Config,
	userService interfaces.UserService,
	projectService interfaces.ProjectService) *AuthHandler

func (*AuthHandler) ChangePassword

func (h *AuthHandler) ChangePassword(c *gin.Context)

ChangePassword godoc @Summary 修改密码 @Description 修改当前用户的登录密码 @Tags 认证 @Accept json @Produce json @Param request body object{old_password=string,new_password=string} true "密码修改请求" @Success 200 {object} map[string]interface{} "修改成功" @Failure 400 {object} errors.AppError "请求参数错误" @Security Bearer @Router /auth/change-password [post]

func (*AuthHandler) GetCurrentUser

func (h *AuthHandler) GetCurrentUser(c *gin.Context)

GetCurrentUser godoc @Summary 获取当前用户信息 @Description 获取当前登录用户的详细信息 @Tags 认证 @Accept json @Produce json @Success 200 {object} map[string]interface{} "用户信息" @Failure 401 {object} errors.AppError "未授权" @Security Bearer @Router /auth/me [get]

func (*AuthHandler) Login

func (h *AuthHandler) Login(c *gin.Context)

Login godoc @Summary 用户登录 @Description 用户登录并获取访问令牌 @Tags 认证 @Accept json @Produce json @Param request body types.LoginRequest true "登录请求参数" @Success 200 {object} types.LoginResponse @Failure 401 {object} errors.AppError "认证失败" @Router /auth/login [post]

func (*AuthHandler) Logout

func (h *AuthHandler) Logout(c *gin.Context)

Logout godoc @Summary 用户登出 @Description 撤销当前访问令牌并登出 @Tags 认证 @Accept json @Produce json @Success 200 {object} map[string]interface{} "登出成功" @Failure 400 {object} errors.AppError "请求参数错误" @Security Bearer @Router /auth/logout [post]

func (*AuthHandler) RefreshToken

func (h *AuthHandler) RefreshToken(c *gin.Context)

RefreshToken godoc @Summary 刷新令牌 @Description 使用刷新令牌获取新的访问令牌 @Tags 认证 @Accept json @Produce json @Param request body object{refreshToken=string} true "刷新令牌" @Success 200 {object} map[string]interface{} "新令牌" @Failure 401 {object} errors.AppError "令牌无效" @Router /auth/refresh [post]

func (*AuthHandler) Register

func (h *AuthHandler) Register(c *gin.Context)

Register godoc @Summary 用户注册 @Description 注册新用户账号 @Tags 认证 @Accept json @Produce json @Param request body types.RegisterRequest true "注册请求参数" @Success 201 {object} types.RegisterResponse @Failure 400 {object} errors.AppError "请求参数错误" @Failure 403 {object} errors.AppError "注册功能已禁用" @Router /auth/register [post]

func (*AuthHandler) ValidateToken

func (h *AuthHandler) ValidateToken(c *gin.Context)

ValidateToken godoc @Summary 验证令牌 @Description 验证访问令牌是否有效 @Tags 认证 @Accept json @Produce json @Success 200 {object} map[string]interface{} "令牌有效" @Failure 401 {object} errors.AppError "令牌无效" @Security Bearer @Router /auth/validate [get]

type ContainerHandler

type ContainerHandler struct {
	// contains filtered or unexported fields
}

func NewContainerHandler

func NewContainerHandler(containerService interfaces.ContainerService,
	projectService interfaces.ProjectService,
	analysisService interfaces.AnalysisService, workflowService interfaces.WorkflowService,
	containerManager *manager.ContainerManager,
	cfg *config.Config) *ContainerHandler

func (*ContainerHandler) CreateAppSession

func (h *ContainerHandler) CreateAppSession(c *gin.Context)

CreateAppSession godoc @Summary 创建应用会话 @Description 输入 ContainerTemplateID + 当前用户 + ProjectID 创建 AppSession,并通过 ContainerManager 创建并绑定容器 @Tags 容器管理 @Accept json @Produce json @Param request body appSessionCreateRequest true "请求参数" @Success 200 {object} types.AppSession @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /container/app-session/create [post]

func (*ContainerHandler) CreateAppSessionByAnalysisNode

func (h *ContainerHandler) CreateAppSessionByAnalysisNode(c *gin.Context)

CreateAppSessionByAnalysisNode godoc @Summary 通过分析节点创建应用会话 @Description 依据 analysis_node_id 查询 AnalysisNode/Analysis/Module,自动推导 ProjectID、ContainerTemplateID、WorkspacePath 并创建 AppSession @Tags 容器管理 @Accept json @Produce json @Param request body appSessionCreateByAnalysisNodeRequest true "请求参数" @Success 200 {object} types.AppSession @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /container/app-session/create-by-analysis-node [post]

func (*ContainerHandler) CreateContainerImage

func (h *ContainerHandler) CreateContainerImage(c *gin.Context)

CreateContainerImage godoc @Summary 创建容器镜像 @Description 创建 ContainerImage 记录 @Tags 容器管理 @Accept json @Produce json @Param request body types.ContainerImage true "请求参数" @Success 200 {object} types.ContainerImage @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /container/image/create [post]

func (*ContainerHandler) CreateContainerTemplate

func (h *ContainerHandler) CreateContainerTemplate(c *gin.Context)

CreateContainerTemplate godoc @Summary 创建容器模板 @Description 创建 ContainerTemplate 记录(手动校验 ImageID,不使用 GORM 关系维护) @Tags 容器管理 @Accept json @Produce json @Param request body types.ContainerTemplate true "请求参数" @Success 200 {object} types.ContainerTemplate @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /container/template/create [post]

func (*ContainerHandler) DeleteAppSession

func (h *ContainerHandler) DeleteAppSession(c *gin.Context)

DeleteAppSession godoc @Summary 删除应用会话 @Description 通过 ContainerManager 删除绑定容器,并删除 AppSession @Tags 容器管理 @Accept json @Produce json @Param request body appSessionIDBody true "请求参数" @Success 200 {object} map[string]string @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /container/app-session/delete [post]

func (*ContainerHandler) DeleteContainerImage

func (h *ContainerHandler) DeleteContainerImage(c *gin.Context)

DeleteContainerImage godoc @Summary 删除容器镜像 @Description 按 ID 删除 ContainerImage 记录 @Tags 容器管理 @Accept json @Produce json @Param request body idBody true "请求参数" @Success 200 {object} map[string]string @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /container/image/delete [post]

func (*ContainerHandler) DeleteContainerTemplate

func (h *ContainerHandler) DeleteContainerTemplate(c *gin.Context)

DeleteContainerTemplate godoc @Summary 删除容器模板 @Description 按 ID 删除 ContainerTemplate 记录 @Tags 容器管理 @Accept json @Produce json @Param request body idBody true "请求参数" @Success 200 {object} map[string]string @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /container/template/delete [post]

func (*ContainerHandler) GetAppSession

func (h *ContainerHandler) GetAppSession(c *gin.Context)

GetAppSession godoc @Summary 获取应用会话 @Description 按 ID 查询当前用户的 AppSession 详情 @Tags 容器管理 @Produce json @Param id query integer true "主键 ID" @Success 200 {object} types.AppSession @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /container/app-session/get [get]

func (*ContainerHandler) GetContainerImage

func (h *ContainerHandler) GetContainerImage(c *gin.Context)

GetContainerImage godoc @Summary 获取容器镜像 @Description 按 ID 查询 ContainerImage 详情 @Tags 容器管理 @Produce json @Param id query integer true "主键 ID" @Success 200 {object} types.ContainerImage @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /container/image/get [get]

func (*ContainerHandler) GetContainerTemplate

func (h *ContainerHandler) GetContainerTemplate(c *gin.Context)

GetContainerTemplate godoc @Summary 获取容器模板 @Description 按 ID 查询 ContainerTemplate 详情 @Tags 容器管理 @Produce json @Param id query integer true "主键 ID" @Success 200 {object} types.ContainerTemplate @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /container/template/get [get]

func (*ContainerHandler) GetQueueStatus

func (h *ContainerHandler) GetQueueStatus(c *gin.Context)

GetQueueStatus godoc @Summary 容器队列状态 @Description 返回队列的运行中/等待中/最大并发/最大排队数量 @Tags 容器管理 @Produce json @Success 200 {object} map[string]interface{} @Failure 401 {object} errors.AppError @Security Bearer @Router /container/queue/status [get]

func (*ContainerHandler) ListAppSession

func (h *ContainerHandler) ListAppSession(c *gin.Context)

ListAppSession godoc @Summary 应用会话列表 @Description 查询当前用户的 AppSession 列表 @Tags 容器管理 @Produce json @Success 200 {array} types.AppSession @Failure 401 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /container/app-session/list [get]

func (*ContainerHandler) ListContainerImage

func (h *ContainerHandler) ListContainerImage(c *gin.Context)

ListContainerImage godoc @Summary 容器镜像列表 @Description 查询 ContainerImage 列表 @Tags 容器管理 @Produce json @Success 200 {array} types.ContainerImage @Failure 401 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /container/image/list [get]

func (*ContainerHandler) ListContainerTemplate

func (h *ContainerHandler) ListContainerTemplate(c *gin.Context)

ListContainerTemplate godoc @Summary 容器模板列表 @Description 查询 ContainerTemplate 列表 @Tags 容器管理 @Produce json @Success 200 {array} types.ContainerTemplate @Failure 401 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /container/template/list [get]

func (*ContainerHandler) ListRuntimeMonitoringSnapshot

func (h *ContainerHandler) ListRuntimeMonitoringSnapshot(c *gin.Context)

ListRuntimeMonitoringSnapshot godoc @Summary 运行时监控快照 @Description 返回全局运行时监控表快照(runtime_id 与引用计数) @Tags 容器管理 @Produce json @Success 200 {object} map[string]interface{} @Failure 401 {object} errors.AppError @Security Bearer @Router /container/runtime/monitoring/list [get]

func (*ContainerHandler) PageAppSession

func (h *ContainerHandler) PageAppSession(c *gin.Context)

PageAppSession godoc @Summary 分页查询应用会话 @Description 按当前用户分页查询 AppSession 列表 @Tags 容器管理 @Accept json @Produce json @Param request body appSessionPageRequest true "分页请求参数" @Success 200 {object} map[string]interface{} @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /container/app-session/list-by-page [post]

func (*ContainerHandler) PageContainerImage

func (h *ContainerHandler) PageContainerImage(c *gin.Context)

PageContainerImage godoc @Summary 分页查询容器镜像 @Description 分页查询 ContainerImage 列表 @Tags 容器管理 @Accept json @Produce json @Param request body containerImagePageRequest true "分页请求参数" @Success 200 {object} map[string]interface{} @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /container/image/list-by-page [post]

func (*ContainerHandler) PageContainerInstance

func (h *ContainerHandler) PageContainerInstance(c *gin.Context)

PageContainerInstance godoc @Summary 分页查询容器实例 @Description 分页查询 ContainerInstance 列表 @Tags 容器管理 @Accept json @Produce json @Param request body containerInstancePageRequest true "分页请求参数" @Success 200 {object} map[string]interface{} @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /container/instance/list-by-page [post]

func (*ContainerHandler) PageContainerTemplate

func (h *ContainerHandler) PageContainerTemplate(c *gin.Context)

PageContainerTemplate godoc @Summary 分页查询容器模板 @Description 分页查询 ContainerTemplate 列表 @Tags 容器管理 @Accept json @Produce json @Param request body containerTemplatePageRequest true "分页请求参数" @Success 200 {object} map[string]interface{} @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /container/template/list-by-page [post]

func (*ContainerHandler) PageOutboxEvent

func (h *ContainerHandler) PageOutboxEvent(c *gin.Context)

PageOutboxEvent godoc @Summary 分页查询事件出箱 @Description 分页查询 OutboxEvent 列表 @Tags 容器管理 @Accept json @Produce json @Param request body outboxEventPageRequest true "分页请求参数" @Success 200 {object} map[string]interface{} @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /container/outbox/list-by-page [post]

func (*ContainerHandler) RecreateAppSessionContainer

func (h *ContainerHandler) RecreateAppSessionContainer(c *gin.Context)

RecreateAppSessionContainer godoc @Summary 重建应用会话容器 @Description 不创建 AppSession,删除并重新创建 AppSession 对应的容器实例 @Tags 容器管理 @Accept json @Produce json @Param request body appSessionIDBody true "请求参数" @Success 200 {object} map[string]string @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /container/app-session/recreate-container [post]

func (*ContainerHandler) StartAppSession

func (h *ContainerHandler) StartAppSession(c *gin.Context)

StartAppSession godoc @Summary 启动应用会话 @Description 通过 ContainerManager 启动 AppSession 绑定容器 @Tags 容器管理 @Accept json @Produce json @Param request body appSessionIDBody true "请求参数" @Success 200 {object} map[string]string @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /container/app-session/start [post]

func (*ContainerHandler) StopAppSession

func (h *ContainerHandler) StopAppSession(c *gin.Context)

StopAppSession godoc @Summary 停止应用会话 @Description 通过 ContainerManager 停止 AppSession 绑定容器 @Tags 容器管理 @Accept json @Produce json @Param request body appSessionIDBody true "请求参数" @Success 200 {object} map[string]string @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /container/app-session/stop [post]

func (*ContainerHandler) UpdateContainerImage

func (h *ContainerHandler) UpdateContainerImage(c *gin.Context)

UpdateContainerImage godoc @Summary 更新容器镜像 @Description 按 ID 更新 ContainerImage 记录 @Tags 容器管理 @Accept json @Produce json @Param request body types.ContainerImage true "请求参数" @Success 200 {object} map[string]string @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /container/image/update [post]

func (*ContainerHandler) UpdateContainerTemplate

func (h *ContainerHandler) UpdateContainerTemplate(c *gin.Context)

UpdateContainerTemplate godoc @Summary 更新容器模板 @Description 按 ID 更新 ContainerTemplate 记录(手动校验 ImageID,不使用 GORM 关系维护) @Tags 容器管理 @Accept json @Produce json @Param request body types.ContainerTemplate true "请求参数" @Success 200 {object} map[string]string @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /container/template/update [post]

type DataHandler

type DataHandler struct {
	// contains filtered or unexported fields
}

func NewDataHandler

func NewDataHandler(dataService interfaces.DataService, projectService interfaces.ProjectService) *DataHandler

func (*DataHandler) AddFileToDataset

func (h *DataHandler) AddFileToDataset(c *gin.Context)

AddFileToDataset godoc @Summary 按路径添加文件到数据集 @Description 根据 BaseDir + path 检查文件是否存在,创建 File 记录并关联到 Dataset @Tags 数据管理 @Accept json @Produce json @Param request body types.AddFileToDatasetRequest true "请求参数" @Success 200 {object} types.AddFileToDatasetResponse @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/dataset-file/add-file [post]

func (*DataHandler) CreateDataset

func (h *DataHandler) CreateDataset(c *gin.Context)

CreateDataset godoc @Summary 创建数据集 @Description 创建 Dataset 记录 @Tags 数据管理 @Accept json @Produce json @Param request body types.Dataset true "请求参数" @Success 200 {object} types.Dataset @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/dataset/create [post]

func (*DataHandler) CreateDatasetFile

func (h *DataHandler) CreateDatasetFile(c *gin.Context)

CreateDatasetFile godoc @Summary 创建数据集-文件映射 @Description 创建 DatasetFile 记录 @Tags 数据管理 @Accept json @Produce json @Param request body types.DatasetFile true "请求参数" @Success 200 {object} types.DatasetFile @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/dataset-file/create [post]

func (*DataHandler) CreateDatasetSample

func (h *DataHandler) CreateDatasetSample(c *gin.Context)

CreateDatasetSample godoc @Summary 创建数据集-样本映射 @Description 创建 DatasetSample 记录 @Tags 数据管理 @Accept json @Produce json @Param request body types.DatasetSample true "请求参数" @Success 200 {object} types.DatasetSample @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/dataset-sample/create [post]

func (*DataHandler) CreateFile

func (h *DataHandler) CreateFile(c *gin.Context)

CreateFile godoc @Summary 创建文件 @Description 创建 File 记录 @Tags 数据管理 @Accept json @Produce json @Param request body types.File true "请求参数" @Success 200 {object} types.File @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/file/create [post]

func (*DataHandler) CreateProjectDataset

func (h *DataHandler) CreateProjectDataset(c *gin.Context)

CreateProjectDataset godoc @Summary 创建项目-数据集映射 @Description 创建 ProjectDataset 记录 @Tags 数据管理 @Accept json @Produce json @Param request body types.ProjectDataset true "请求参数" @Success 200 {object} types.ProjectDataset @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/project-dataset/create [post]

func (*DataHandler) CreateSample

func (h *DataHandler) CreateSample(c *gin.Context)

CreateSample godoc @Summary 创建样本 @Description 创建 Sample 记录 @Tags 数据管理 @Accept json @Produce json @Param request body types.Sample true "请求参数" @Success 200 {object} types.Sample @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/sample/create [post]

func (*DataHandler) CreateSampleFile

func (h *DataHandler) CreateSampleFile(c *gin.Context)

CreateSampleFile godoc @Summary 创建样本-文件映射 @Description 创建 SampleFile 记录 @Tags 数据管理 @Accept json @Produce json @Param request body types.SampleFile true "请求参数" @Success 200 {object} types.SampleFile @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/sample-file/create [post]

func (*DataHandler) DeleteDataset

func (h *DataHandler) DeleteDataset(c *gin.Context)

DeleteDataset godoc @Summary 删除数据集 @Description 按 ID 删除 Dataset,并手动清理关联映射关系 @Tags 数据管理 @Accept json @Produce json @Param request body idBody true "请求参数" @Success 200 {object} map[string]string @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/dataset/delete [post]

func (*DataHandler) DeleteDatasetFile

func (h *DataHandler) DeleteDatasetFile(c *gin.Context)

DeleteDatasetFile godoc @Summary 删除数据集-文件映射 @Description 按 ID 删除 DatasetFile 记录 @Tags 数据管理 @Accept json @Produce json @Param request body idBody true "请求参数" @Success 200 {object} map[string]string @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/dataset-file/delete [post]

func (*DataHandler) DeleteDatasetSample

func (h *DataHandler) DeleteDatasetSample(c *gin.Context)

DeleteDatasetSample godoc @Summary 删除数据集-样本映射 @Description 按 ID 删除 DatasetSample 记录 @Tags 数据管理 @Accept json @Produce json @Param request body idBody true "请求参数" @Success 200 {object} map[string]string @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/dataset-sample/delete [post]

func (*DataHandler) DeleteFile

func (h *DataHandler) DeleteFile(c *gin.Context)

DeleteFile godoc @Summary 删除文件 @Description 按 ID 删除 File,并手动清理关联映射关系 @Tags 数据管理 @Accept json @Produce json @Param request body idBody true "请求参数" @Success 200 {object} map[string]string @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/file/delete [post]

func (*DataHandler) DeleteProjectDataset

func (h *DataHandler) DeleteProjectDataset(c *gin.Context)

DeleteProjectDataset godoc @Summary 删除项目-数据集映射 @Description 按 ID 删除 ProjectDataset 记录 @Tags 数据管理 @Accept json @Produce json @Param request body idBody true "请求参数" @Success 200 {object} map[string]string @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/project-dataset/delete [post]

func (*DataHandler) DeleteSample

func (h *DataHandler) DeleteSample(c *gin.Context)

DeleteSample godoc @Summary 删除样本 @Description 按 ID 删除 Sample,并手动清理关联映射关系 @Tags 数据管理 @Accept json @Produce json @Param request body idBody true "请求参数" @Success 200 {object} map[string]string @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/sample/delete [post]

func (*DataHandler) DeleteSampleFile

func (h *DataHandler) DeleteSampleFile(c *gin.Context)

DeleteSampleFile godoc @Summary 删除样本-文件映射 @Description 按 ID 删除 SampleFile 记录 @Tags 数据管理 @Accept json @Produce json @Param request body idBody true "请求参数" @Success 200 {object} map[string]string @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/sample-file/delete [post]

func (*DataHandler) GetDataset

func (h *DataHandler) GetDataset(c *gin.Context)

GetDataset godoc @Summary 获取数据集 @Description 按 ID 查询 Dataset 详情 @Tags 数据管理 @Produce json @Param id query integer true "主键 ID" @Success 200 {object} types.Dataset @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/dataset/get [get]

func (*DataHandler) GetDatasetFile

func (h *DataHandler) GetDatasetFile(c *gin.Context)

GetDatasetFile godoc @Summary 获取数据集-文件映射 @Description 按 ID 查询 DatasetFile 详情 @Tags 数据管理 @Produce json @Param id query integer true "主键 ID" @Success 200 {object} types.DatasetFile @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/dataset-file/get [get]

func (*DataHandler) GetDatasetSample

func (h *DataHandler) GetDatasetSample(c *gin.Context)

GetDatasetSample godoc @Summary 获取数据集-样本映射 @Description 按 ID 查询 DatasetSample 详情 @Tags 数据管理 @Produce json @Param id query integer true "主键 ID" @Success 200 {object} types.DatasetSample @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/dataset-sample/get [get]

func (*DataHandler) GetFile

func (h *DataHandler) GetFile(c *gin.Context)

GetFile godoc @Summary 获取文件 @Description 按 ID 查询 File 详情 @Tags 数据管理 @Produce json @Param id query integer true "主键 ID" @Success 200 {object} types.File @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/file/get [get]

func (*DataHandler) GetProjectDataset

func (h *DataHandler) GetProjectDataset(c *gin.Context)

GetProjectDataset godoc @Summary 获取项目-数据集映射 @Description 按 ID 查询 ProjectDataset 详情 @Tags 数据管理 @Produce json @Param id query integer true "主键 ID" @Success 200 {object} types.ProjectDataset @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/project-dataset/get [get]

func (*DataHandler) GetSample

func (h *DataHandler) GetSample(c *gin.Context)

GetSample godoc @Summary 获取样本 @Description 按 ID 查询 Sample 详情 @Tags 数据管理 @Produce json @Param id query integer true "主键 ID" @Success 200 {object} types.Sample @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/sample/get [get]

func (*DataHandler) GetSampleFile

func (h *DataHandler) GetSampleFile(c *gin.Context)

GetSampleFile godoc @Summary 获取样本-文件映射 @Description 按 ID 查询 SampleFile 详情 @Tags 数据管理 @Produce json @Param id query integer true "主键 ID" @Success 200 {object} types.SampleFile @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/sample-file/get [get]

func (*DataHandler) ListDataset

func (h *DataHandler) ListDataset(c *gin.Context)

ListDataset godoc @Summary 数据集列表 @Description 查询 Dataset 列表 @Tags 数据管理 @Produce json @Success 200 {array} types.Dataset @Failure 401 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/dataset/list [get]

func (*DataHandler) ListDatasetFile

func (h *DataHandler) ListDatasetFile(c *gin.Context)

ListDatasetFile godoc @Summary 数据集-文件映射列表 @Description 查询 DatasetFile 列表 @Tags 数据管理 @Produce json @Success 200 {array} types.DatasetFile @Failure 401 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/dataset-file/list [get]

func (*DataHandler) ListDatasetSample

func (h *DataHandler) ListDatasetSample(c *gin.Context)

ListDatasetSample godoc @Summary 数据集-样本映射列表 @Description 查询 DatasetSample 列表 @Tags 数据管理 @Produce json @Success 200 {array} types.DatasetSample @Failure 401 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/dataset-sample/list [get]

func (*DataHandler) ListFile

func (h *DataHandler) ListFile(c *gin.Context)

ListFile godoc @Summary 文件列表 @Description 查询 File 列表 @Tags 数据管理 @Produce json @Success 200 {array} types.File @Failure 401 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/file/list [get]

func (*DataHandler) ListFileByProjectID

func (h *DataHandler) ListFileByProjectID(c *gin.Context)

ListFileByProjectID godoc @Summary 按项目查询文件列表 @Description 根据 project_id 查询关联的所有文件;支持按 go_dataset_file.role 过滤 @Tags 数据管理 @Produce json @Param project_id query string true "项目业务ID" @Param role query []string false "角色过滤,可多选;不传默认查询全部" collectionFormat(multi) @Success 200 {array} types.FileWithDatasetInfo @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/file/list-by-project [get]

func (*DataHandler) ListFileByProjectIDGroupByRole

func (h *DataHandler) ListFileByProjectIDGroupByRole(c *gin.Context)

ListFileByProjectIDGroupByRole godoc @Summary 按项目查询文件列表并按角色分组 @Description 根据 project_id 查询关联文件,并按 role 分组 @Tags 数据管理 @Produce json @Param project_id query string true "项目业务ID" @Success 200 {object} map[string][]types.FileWithDatasetInfo @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/file/list-by-project-group [get]

func (*DataHandler) ListProjectDataset

func (h *DataHandler) ListProjectDataset(c *gin.Context)

ListProjectDataset godoc @Summary 项目-数据集映射列表 @Description 查询 ProjectDataset 列表 @Tags 数据管理 @Produce json @Success 200 {array} types.ProjectDataset @Failure 401 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/project-dataset/list [get]

func (*DataHandler) ListSample

func (h *DataHandler) ListSample(c *gin.Context)

ListSample godoc @Summary 样本列表 @Description 查询 Sample 列表 @Tags 数据管理 @Produce json @Success 200 {array} types.Sample @Failure 401 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/sample/list [get]

func (*DataHandler) ListSampleByProjectID

func (h *DataHandler) ListSampleByProjectID(c *gin.Context)

ListSampleByProjectID godoc @Summary 按项目查询样本列表 @Description 根据 project_id 查询关联的所有样本 @Tags 数据管理 @Produce json @Param project_id query string true "项目业务ID" @Success 200 {array} types.SampleWithDatasetInfo @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/sample/list-by-project [get]

func (*DataHandler) ListSampleFile

func (h *DataHandler) ListSampleFile(c *gin.Context)

ListSampleFile godoc @Summary 样本-文件映射列表 @Description 查询 SampleFile 列表 @Tags 数据管理 @Produce json @Success 200 {array} types.SampleFile @Failure 401 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/sample-file/list [get]

func (*DataHandler) PageDatasetByProjectID

func (h *DataHandler) PageDatasetByProjectID(c *gin.Context)

PageDatasetByProjectID godoc @Summary 按项目分页查询数据集 @Description 根据 project_id 分页查询关联的 Dataset 列表 @Tags 数据管理 @Accept json @Produce json @Param request body datasetByProjectPageRequest true "分页请求参数" @Success 200 {object} map[string]interface{} @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/dataset/list-by-project-page [post]

func (*DataHandler) PageFileByProjectID

func (h *DataHandler) PageFileByProjectID(c *gin.Context)

PageFileByProjectID godoc @Summary 按项目分页查询文件 @Description 根据 project_id 分页查询项目下关联文件,并返回 role、dataset_name、dataset_id 等信息 @Tags 数据管理 @Accept json @Produce json @Param request body projectFilePageRequest true "分页请求参数" @Success 200 {object} map[string]interface{} @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/file/list-by-project-page [post]

func (*DataHandler) PageSampleByProjectID

func (h *DataHandler) PageSampleByProjectID(c *gin.Context)

PageSampleByProjectID godoc @Summary 按项目分页查询样本 @Description 根据 project_id 分页查询项目下关联样本,并返回 dataset_name、dataset_id 等信息 @Tags 数据管理 @Accept json @Produce json @Param request body sampleByProjectPageRequest true "分页请求参数" @Success 200 {object} map[string]interface{} @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/sample/list-by-project-page [post]

func (*DataHandler) UpdateDataset

func (h *DataHandler) UpdateDataset(c *gin.Context)

UpdateDataset godoc @Summary 更新数据集 @Description 按 ID 更新 Dataset 记录 @Tags 数据管理 @Accept json @Produce json @Param request body types.Dataset true "请求参数" @Success 200 {object} map[string]string @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/dataset/update [post]

func (*DataHandler) UpdateDatasetFile

func (h *DataHandler) UpdateDatasetFile(c *gin.Context)

UpdateDatasetFile godoc @Summary 更新数据集-文件映射 @Description 根据 DatasetID + FileID 更新 DatasetFile 的 Role 字段 @Tags 数据管理 @Accept json @Produce json @Param request body types.UpdateDatasetFileRequest true "请求参数" @Success 200 {object} map[string]string @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/dataset-file/update [post]

func (*DataHandler) UpdateDatasetSample

func (h *DataHandler) UpdateDatasetSample(c *gin.Context)

UpdateDatasetSample godoc @Summary 更新数据集-样本映射 @Description 按 ID 更新 DatasetSample 记录 @Tags 数据管理 @Accept json @Produce json @Param request body types.DatasetSample true "请求参数" @Success 200 {object} map[string]string @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/dataset-sample/update [post]

func (*DataHandler) UpdateFile

func (h *DataHandler) UpdateFile(c *gin.Context)

UpdateFile godoc @Summary 更新文件 @Description 按 ID 更新 File 记录 @Tags 数据管理 @Accept json @Produce json @Param request body types.File true "请求参数" @Success 200 {object} map[string]string @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/file/update [post]

func (*DataHandler) UpdateProjectDataset

func (h *DataHandler) UpdateProjectDataset(c *gin.Context)

UpdateProjectDataset godoc @Summary 更新项目-数据集映射 @Description 按 ID 更新 ProjectDataset 记录 @Tags 数据管理 @Accept json @Produce json @Param request body types.ProjectDataset true "请求参数" @Success 200 {object} map[string]string @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/project-dataset/update [post]

func (*DataHandler) UpdateSample

func (h *DataHandler) UpdateSample(c *gin.Context)

UpdateSample godoc @Summary 更新样本 @Description 按 ID 更新 Sample 记录 @Tags 数据管理 @Accept json @Produce json @Param request body types.Sample true "请求参数" @Success 200 {object} map[string]string @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/sample/update [post]

func (*DataHandler) UpdateSampleFile

func (h *DataHandler) UpdateSampleFile(c *gin.Context)

UpdateSampleFile godoc @Summary 更新样本-文件映射 @Description 按 ID 更新 SampleFile 记录 @Tags 数据管理 @Accept json @Produce json @Param request body types.SampleFile true "请求参数" @Success 200 {object} map[string]string @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /data/sample-file/update [post]

type EditNodeParamsResponse

type EditNodeParamsResponse struct {
	AnalysisName   string                 `json:"analysis_name"`
	IsReport       bool                   `json:"is_report"`
	CacheType      int                    `json:"cache_type"`
	AnalysisID     int64                  `json:"analysis_id,string"`
	AnalysisNodeID string                 `json:"analysis_node_id"`
	Status         string                 `json:"status"`
	ServerStatus   string                 `json:"server_status"`
	RequestParam   map[string]interface{} `json:"request_param"`
	AnalysisResult map[string]interface{} `json:"analysis_result"`
	FormJSON       []interface{}          `json:"formJson"`
}

type EditParamsV2Response

type EditParamsV2Response struct {
	AnalysisName   string                 `json:"analysis_name"`
	IsReport       bool                   `json:"is_report"`
	CacheType      int                    `json:"cache_type"`
	AnalysisID     string                 `json:"analysis_id"`
	Status         string                 `json:"status"`
	ServerStatus   string                 `json:"server_status"`
	RequestParam   map[string]interface{} `json:"request_param"`
	AnalysisResult map[string]interface{} `json:"analysis_result"`
	FormJSON       []interface{}          `json:"formJson"`
}

type FileHandler

type FileHandler struct {
	// contains filtered or unexported fields
}

func NewFileHandler

func NewFileHandler(cfg *config.Config, projectService interfaces.ProjectService) *FileHandler

func (*FileHandler) CreateDir

func (h *FileHandler) CreateDir(c *gin.Context)

func (*FileHandler) CreateFile

func (h *FileHandler) CreateFile(c *gin.Context)

func (*FileHandler) Delete

func (h *FileHandler) Delete(c *gin.Context)

func (*FileHandler) Download

func (h *FileHandler) Download(c *gin.Context)

func (*FileHandler) ListProjectDir

func (h *FileHandler) ListProjectDir(c *gin.Context)

func (*FileHandler) Move

func (h *FileHandler) Move(c *gin.Context)

func (*FileHandler) Search

func (h *FileHandler) Search(c *gin.Context)

func (*FileHandler) Upload

func (h *FileHandler) Upload(c *gin.Context)

type LLMHandler

type LLMHandler struct {
	// contains filtered or unexported fields
}

func NewLLMHandler

func NewLLMHandler(hub *realtime.Hub, cfg *config.Config, projectSvc interfaces.ProjectService,
	llmSvc interfaces.LLMService,
	workflowSvc interfaces.WorkflowService,
	analsyisSvc interfaces.AnalysisService,
	nodeOrchestrator interfaces.NodeOrchestrator,
) *LLMHandler

func (*LLMHandler) CreateLLMConversation

func (h *LLMHandler) CreateLLMConversation(c *gin.Context)

func (*LLMHandler) CreateLLMSession

func (h *LLMHandler) CreateLLMSession(c *gin.Context)

func (*LLMHandler) DeleteLLMConversation

func (h *LLMHandler) DeleteLLMConversation(c *gin.Context)

func (*LLMHandler) DeleteLLMSession

func (h *LLMHandler) DeleteLLMSession(c *gin.Context)

func (*LLMHandler) GetLLMConversation

func (h *LLMHandler) GetLLMConversation(c *gin.Context)

func (*LLMHandler) GetLLMSession

func (h *LLMHandler) GetLLMSession(c *gin.Context)

func (*LLMHandler) ListLLMConversation

func (h *LLMHandler) ListLLMConversation(c *gin.Context)

func (*LLMHandler) ListLLMSession

func (h *LLMHandler) ListLLMSession(c *gin.Context)

func (*LLMHandler) UpdateLLMConversation

func (h *LLMHandler) UpdateLLMConversation(c *gin.Context)

func (*LLMHandler) UpdateLLMSession

func (h *LLMHandler) UpdateLLMSession(c *gin.Context)

type ProjectHandler

type ProjectHandler struct {
	// contains filtered or unexported fields
}

func NewProjectHandler

func NewProjectHandler(projectService interfaces.ProjectService) *ProjectHandler

func (*ProjectHandler) ActivateProject

func (h *ProjectHandler) ActivateProject(c *gin.Context)

ActivateProject godoc @Summary 激活当前用户项目 @Description 按项目ID激活当前用户的项目,并将该用户其他项目全部置为未激活 @Tags 项目 @Accept json @Produce json @Param request body activateProjectRequest true "请求参数" @Success 200 {object} map[string]string "激活成功" @Failure 400 {object} errors.AppError "参数错误" @Failure 401 {object} errors.AppError "未认证" @Failure 404 {object} errors.AppError "项目未关联当前用户" @Failure 500 {object} errors.AppError "服务器错误" @Security Bearer @Router /project/activate-project [post]

func (*ProjectHandler) AddProjectReport

func (h *ProjectHandler) AddProjectReport(c *gin.Context)

AddProjectReport godoc @Summary 添加项目报告 @Description 向指定项目添加报告记录 @Tags 项目 @Accept json @Produce json @Param request body addProjectReportRequest true "请求参数" @Success 200 {object} types.ProjectReport "创建成功" @Failure 400 {object} errors.AppError "参数错误" @Failure 401 {object} errors.AppError "未认证" @Failure 404 {object} errors.AppError "项目未关联当前用户" @Failure 500 {object} errors.AppError "服务器错误" @Security Bearer @Router /project/add-project-report [post]

func (*ProjectHandler) AddProjectToUser

func (h *ProjectHandler) AddProjectToUser(c *gin.Context)

AddProjectToUser godoc @Summary 按用户ID关联用户与项目 @Description 将指定用户与指定项目关联(写入 user_project 中间表),用户ID由请求传入 @Tags 项目 @Accept json @Produce json @Param request body addProjectToUserRequest true "请求参数" @Success 200 {object} map[string]string "关联成功" @Failure 400 {object} errors.AppError "参数错误或已存在关联" @Failure 401 {object} errors.AppError "未认证" @Failure 500 {object} errors.AppError "服务器错误" @Security Bearer @Router /project/add-project-to-user [post]

func (*ProjectHandler) AddUserProject

func (h *ProjectHandler) AddUserProject(c *gin.Context)

AddUserProject godoc @Summary 通过分享码关联用户与项目 @Description 根据分享码查找项目,并将当前登录用户与该项目关联(写入 user_project 中间表) @Tags 项目 @Accept json @Produce json @Param request body addUserProjectRequest true "请求参数" @Success 200 {object} map[string]string "关联成功" @Failure 400 {object} errors.AppError "参数错误、分享码无效或已存在关联" @Failure 401 {object} errors.AppError "未认证" @Failure 500 {object} errors.AppError "服务器错误" @Security Bearer @Router /project/add-user-project [post]

func (*ProjectHandler) CreateProject

func (h *ProjectHandler) CreateProject(c *gin.Context)

CreateProject godoc @Summary 为当前用户创建项目 @Description 创建一个新项目并将其关联到当前登录用户,同时将该用户其他项目置为非激活 @Tags 项目 @Accept json @Produce json @Param request body createProjectRequest true "请求参数" @Success 200 {object} projectListItem "创建成功" @Failure 400 {object} errors.AppError "参数错误" @Failure 401 {object} errors.AppError "未认证" @Failure 500 {object} errors.AppError "服务器错误" @Security Bearer @Router /project/create-project [post]

func (*ProjectHandler) DeleteProjectReport

func (h *ProjectHandler) DeleteProjectReport(c *gin.Context)

DeleteProjectReport godoc @Summary 删除项目报告 @Description 按报告ID删除指定项目下的报告 @Tags 项目 @Accept json @Produce json @Param request body deleteProjectReportRequest true "请求参数" @Success 200 {object} map[string]string "删除成功" @Failure 400 {object} errors.AppError "参数错误" @Failure 401 {object} errors.AppError "未认证" @Failure 404 {object} errors.AppError "项目或报告不存在" @Failure 500 {object} errors.AppError "服务器错误" @Security Bearer @Router /project/delete-project-report [post]

func (*ProjectHandler) DeleteUserProject

func (h *ProjectHandler) DeleteUserProject(c *gin.Context)

DeleteUserProject godoc @Summary 删除用户与项目关联 @Description 根据当前登录用户与项目ID删除 user_project 中间表记录,仅当该关联为非激活状态时允许删除 @Tags 项目 @Accept json @Produce json @Param request body deleteUserProjectRequest true "请求参数" @Success 200 {object} map[string]string "删除成功" @Failure 400 {object} errors.AppError "参数错误或关联仍为激活状态" @Failure 404 {object} errors.AppError "关联不存在" @Failure 500 {object} errors.AppError "服务器错误" @Security Bearer @Router /project/delete-user-project [post]

func (*ProjectHandler) GetActiveProject

func (h *ProjectHandler) GetActiveProject(c *gin.Context)

GetActiveProject godoc @Summary 获取当前用户激活项目 @Description 返回当前登录用户唯一激活的项目 @Tags 项目 @Produce json @Success 200 {object} projectListItem "激活项目" @Failure 401 {object} errors.AppError "未认证" @Failure 404 {object} errors.AppError "未找到激活项目" @Failure 500 {object} errors.AppError "服务器错误" @Security Bearer @Router /project/active-project [get]

func (*ProjectHandler) GetProjectReportDetail

func (h *ProjectHandler) GetProjectReportDetail(c *gin.Context)

GetProjectReportDetail godoc @Summary 查询项目报告详情 @Description 根据 id 查询报告详情(包含 content) @Tags 项目 @Produce json @Param id query string true "报告ID或 file:文件名.md" @Success 200 {object} projectReportDetailItem "报告详情" @Failure 400 {object} errors.AppError "参数错误" @Failure 401 {object} errors.AppError "未认证" @Failure 404 {object} errors.AppError "项目未关联当前用户" @Failure 500 {object} errors.AppError "服务器错误" @Security Bearer @Router /project/project-report-detail [get]

func (*ProjectHandler) ListProject

func (h *ProjectHandler) ListProject(c *gin.Context)

ListProject godoc @Summary 获取当前用户的项目列表 @Description 返回与当前登录用户关联的所有项目(通过 user_project 关系表过滤) @Tags 项目 @Produce json @Success 200 {array} projectListItem "项目列表" @Failure 401 {object} errors.AppError "未认证" @Failure 500 {object} errors.AppError "服务器错误" @Security Bearer @Router /project/list-project [get]

func (*ProjectHandler) ListProjectReport

func (h *ProjectHandler) ListProjectReport(c *gin.Context)

ListProjectReport godoc @Summary 查询项目报告列表 @Description 查询当前用户激活项目的报告列表,不返回 content 字段,按 sort_order、created_at 升序排序 @Tags 项目 @Produce json @Success 200 {array} projectReportListItem "报告列表" @Failure 401 {object} errors.AppError "未认证" @Failure 404 {object} errors.AppError "未找到激活项目" @Failure 500 {object} errors.AppError "服务器错误" @Security Bearer @Router /project/list-project-report [get]

func (*ProjectHandler) PageProjectReport

func (h *ProjectHandler) PageProjectReport(c *gin.Context)

PageProjectReport godoc @Summary 分页查询项目报告列表 @Description 按当前用户激活项目分页查询报告列表,不返回 content 字段,按 sort_order 降序、created_at 升序排序 @Tags 项目 @Accept json @Produce json @Param request body handler.projectReportPageRequest true "分页请求参数" @Success 200 {object} map[string]interface{} @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /project/list-project-report-page [post]

func (*ProjectHandler) UpdateProjectReport

func (h *ProjectHandler) UpdateProjectReport(c *gin.Context)

UpdateProjectReport godoc @Summary 更新项目报告 @Description 按报告ID更新指定项目下的报告 @Tags 项目 @Accept json @Produce json @Param request body updateProjectReportRequest true "请求参数" @Success 200 {object} map[string]string "更新成功" @Failure 400 {object} errors.AppError "参数错误" @Failure 401 {object} errors.AppError "未认证" @Failure 404 {object} errors.AppError "项目或报告不存在" @Failure 500 {object} errors.AppError "服务器错误" @Security Bearer @Router /project/update-project-report [post]

func (*ProjectHandler) UpdateProjectSharing

func (h *ProjectHandler) UpdateProjectSharing(c *gin.Context)

UpdateProjectSharing godoc @Summary 开启或关闭项目分享 @Description 开启分享时生成分享码并返回;关闭分享时清空分享码 @Tags 项目 @Accept json @Produce json @Param request body updateProjectSharingRequest true "请求参数" @Success 200 {object} map[string]interface{} "分享状态与分享码" @Failure 400 {object} errors.AppError "参数错误" @Failure 401 {object} errors.AppError "未认证" @Failure 404 {object} errors.AppError "项目未关联当前用户" @Failure 500 {object} errors.AppError "服务器错误" @Security Bearer @Router /project/update-project-sharing [post]

type ProxyHandler

type ProxyHandler struct {
	// contains filtered or unexported fields
}

func NewProxyHandler

func NewProxyHandler(cfg *config.Config, registry route.RouteRegistry) (*ProxyHandler, error)

func (*ProxyHandler) AppSessionProxy

func (h *ProxyHandler) AppSessionProxy(c *gin.Context)

func (*ProxyHandler) BraveAPIProxy

func (h *ProxyHandler) BraveAPIProxy(c *gin.Context)

func (*ProxyHandler) ContainerProxy

func (h *ProxyHandler) ContainerProxy(c *gin.Context)

func (*ProxyHandler) FallbackProxy

func (h *ProxyHandler) FallbackProxy(c *gin.Context)

func (*ProxyHandler) OnlyOfficeProxy

func (h *ProxyHandler) OnlyOfficeProxy(c *gin.Context)

type PublishScriptRequest

type PublishScriptRequest struct {
	ScriptID int64  `json:"script_id,string"`
	Url      string `json:"url"`
	Version  string `json:"version"`
	Message  string `json:"message"`
}

type PublishWorkflowRequest

type PublishWorkflowRequest struct {
	WorkflowID int64  `json:"workflow_id,string"`
	Url        string `json:"url"`
	Version    string `json:"version"`
	Message    string `json:"message"`
}

type RealtimeHandler

type RealtimeHandler struct {
	// contains filtered or unexported fields
}

func NewRealtimeHandler

func NewRealtimeHandler(hub *realtime.Hub, cfg *config.Config) *RealtimeHandler

func (*RealtimeHandler) Connect

func (h *RealtimeHandler) Connect(c *gin.Context)

func (*RealtimeHandler) ConnectSSE

func (h *RealtimeHandler) ConnectSSE(c *gin.Context)

func (*RealtimeHandler) ConnectWS

func (h *RealtimeHandler) ConnectWS(c *gin.Context)

func (*RealtimeHandler) Push

func (h *RealtimeHandler) Push(c *gin.Context)

func (*RealtimeHandler) Stats

func (h *RealtimeHandler) Stats(c *gin.Context)

type RunAnalysisNodeToolParams

type RunAnalysisNodeToolParams struct {
	AnalysisNodeID string `json:"analysis_node_id" jsonschema:"The analysis node ID to run, as a string to preserve precision"`
	TimeoutSeconds int    `json:"timeout_seconds" jsonschema:"Timeout seconds waiting for completion (default 600)"`
}

RunAnalysisNodeToolParams is the input for the run_analysis_node LLM tool.

type RunAnalysisNodeToolResult

type RunAnalysisNodeToolResult struct {
	AnalysisNodeID int64  `json:"analysis_node_id"`
	Status         string `json:"status"`
	Log            string `json:"log"`
	Success        bool   `json:"success"`
	Error          string `json:"error,omitempty"`
}

RunAnalysisNodeToolResult is the output returned to the LLM after the node finishes.

type SettingHandler

type SettingHandler struct {
	// contains filtered or unexported fields
}

func NewSettingHandler

func NewSettingHandler(cfg *config.Config) *SettingHandler

func (*SettingHandler) GetSetting

func (h *SettingHandler) GetSetting(c *gin.Context)

GetSetting godoc @Summary 获取系统设置 @Description 返回当前系统配置的容器运行时 @Tags 系统设置 @Produce json @Success 200 {object} getSettingResponse @Security Bearer @Router /setting/get-setting [get]

type SheetHandler

type SheetHandler struct {
	// contains filtered or unexported fields
}

func NewSheetHandler

func NewSheetHandler(sheetService interfaces.SheetFileService, dataService interfaces.DataService) *SheetHandler

func (*SheetHandler) ReadWorkbook

func (h *SheetHandler) ReadWorkbook(c *gin.Context)

ReadWorkbook godoc @Summary 读取本地工作簿 @Description 从本地文件读取工作簿并转换为 Univer 可用结构。当前优先支持 xlsx,csv/tsv 将在后续版本支持。 @Tags 表格 @Produce json @Param file_path query string true "本地文件路径(相对路径以 sheets 目录为根)" @Param format query string false "文件格式,可选:xlsx" @Success 200 {object} interfaces.WorkbookReadResult @Failure 400 {object} apperrors.AppError @Failure 401 {object} apperrors.AppError @Failure 404 {object} apperrors.AppError @Failure 500 {object} apperrors.AppError @Security Bearer @Router /sheet/workbook [get]

func (*SheetHandler) ReadWorkbookByFileID

func (h *SheetHandler) ReadWorkbookByFileID(c *gin.Context)

ReadWorkbookByFileID godoc @Summary 根据文件ID读取工作簿 @Description 根据 file_id 查找文件 path,再读取工作簿并转换为 Univer 可用结构。 @Tags 表格 @Produce json @Param file_id query string true "文件业务ID" @Param format query string false "文件格式,可选:xlsx" @Success 200 {object} interfaces.WorkbookReadResult @Failure 400 {object} apperrors.AppError @Failure 401 {object} apperrors.AppError @Failure 404 {object} apperrors.AppError @Failure 500 {object} apperrors.AppError @Security Bearer @Router /sheet/workbook/by-file-id [get]

func (*SheetHandler) WriteWorkbook

func (h *SheetHandler) WriteWorkbook(c *gin.Context)

WriteWorkbook godoc @Summary 保存工作簿到本地 @Description 将 Univer 工作簿结构写入本地文件。当前优先支持 xlsx,csv/tsv 将在后续版本支持。 @Tags 表格 @Accept json @Produce json @Param request body writeWorkbookRequest true "请求参数" @Success 200 {object} interfaces.WorkbookWriteResult @Failure 400 {object} apperrors.AppError @Failure 401 {object} apperrors.AppError @Failure 500 {object} apperrors.AppError @Security Bearer @Router /sheet/workbook/save [post]

func (*SheetHandler) WriteWorkbookByFileID

func (h *SheetHandler) WriteWorkbookByFileID(c *gin.Context)

WriteWorkbookByFileID godoc @Summary 根据文件ID保存工作簿 @Description 根据 file_id 查找文件 path,再将 Univer 工作簿结构写入本地文件。 @Tags 表格 @Accept json @Produce json @Param request body writeWorkbookByFileIDRequest true "请求参数" @Success 200 {object} interfaces.WorkbookWriteResult @Failure 400 {object} apperrors.AppError @Failure 401 {object} apperrors.AppError @Failure 404 {object} apperrors.AppError @Failure 500 {object} apperrors.AppError @Security Bearer @Router /sheet/workbook/save/by-file-id [post]

type StoreHandler

type StoreHandler struct {
	// contains filtered or unexported fields
}

func NewStoreHandler

func NewStoreHandler(storeService interfaces.StoreService, cfg *config.Config) *StoreHandler

func (*StoreHandler) CreateStore

func (h *StoreHandler) CreateStore(c *gin.Context)

func (*StoreHandler) DeleteStore

func (h *StoreHandler) DeleteStore(c *gin.Context)

func (*StoreHandler) DownloadStore

func (h *StoreHandler) DownloadStore(c *gin.Context)

func (*StoreHandler) GetStore

func (h *StoreHandler) GetStore(c *gin.Context)

func (*StoreHandler) GetStoreByStoreID

func (h *StoreHandler) GetStoreByStoreID(c *gin.Context)

func (*StoreHandler) ListStore

func (h *StoreHandler) ListStore(c *gin.Context)

func (*StoreHandler) PageStore

func (h *StoreHandler) PageStore(c *gin.Context)

func (*StoreHandler) ReDownloadStore

func (h *StoreHandler) ReDownloadStore(c *gin.Context)

func (*StoreHandler) UpdateStore

func (h *StoreHandler) UpdateStore(c *gin.Context)

type UploadHandler

type UploadHandler struct {
	// contains filtered or unexported fields
}

func NewUploadHandler

func NewUploadHandler(cfg *config.Config) *UploadHandler

func (*UploadHandler) UploadImage

func (h *UploadHandler) UploadImage(c *gin.Context)

UploadImage handles image file upload for project report markdown. @Summary 上传项目报告图片 @Description 上传图片并返回可直接用于 Markdown 的图片 URL @Tags 项目 @Accept mpfd @Produce json @Param file formData file true "图片文件" @Success 200 {object} map[string]interface{} "上传成功" @Failure 400 {object} appErrors.AppError "参数错误" @Failure 500 {object} appErrors.AppError "服务器错误" @Security Bearer @Router /project/upload-image [post]

type VisualizationNodeFileResponse

type VisualizationNodeFileResponse struct {
	Node         map[string]interface{}      `json:"node"`
	Result       VisualizationResultResponse `json:"result"`
	Status       string                      `json:"status"`
	ServerStatus string                      `json:"server_status"`
	UrlPrefix    string                      `json:"url_prefix"`
}

type VisualizationNodeTreeItem

type VisualizationNodeTreeItem struct {
	ScriptID   string                `json:"script_id,string"`
	ScriptName string                `json:"script_name"`
	Children   []*types.AnalysisNode `json:"children"`
}

type VisualizationNodeTreeResponse

type VisualizationNodeTreeResponse struct {
	AnalysisID   string                      `json:"analysis_id"`
	AnalysisName string                      `json:"analysis_name"`
	RelationID   string                      `json:"relation_id"`
	Result       []VisualizationNodeTreeItem `json:"result"`
}

type VisualizationResultResponse

type VisualizationResultResponse struct {
	Images []map[string]interface{} `json:"images"`
	Tables []map[string]interface{} `json:"tables"`
	HTMLs  []map[string]interface{} `json:"htmls"`
	Files  []map[string]interface{} `json:"files"`
}

type WeatherParams

type WeatherParams struct {
	City string `json:"city" jsonschema:"The city name"`
}

Define the parameter type

type WeatherResult

type WeatherResult struct {
	City        string `json:"city"`
	Temperature string `json:"temperature"`
	Condition   string `json:"condition"`
}

Define the return type

type WorkflowFormJSONResponse

type WorkflowFormJSONResponse struct {
	Type     string        `json:"type"`
	FormJSON []interface{} `json:"formJson"`
}

type WorkflowFormResponse

type WorkflowFormResponse struct {
	Type           string                 `json:"type"`
	FormJSON       []interface{}          `json:"formJson"`
	AnalysisResult map[string]interface{} `json:"analysis_result"`
}

type WorkflowHandler

type WorkflowHandler struct {
	// contains filtered or unexported fields
}

func NewWorkflowHandler

func NewWorkflowHandler(workflowService interfaces.WorkflowService,
	containerService interfaces.ContainerService,
	dataService interfaces.DataService,
	projectService interfaces.ProjectService,
	storeService interfaces.StoreService, cfg *config.Config) *WorkflowHandler

func (*WorkflowHandler) DeleteScript

func (h *WorkflowHandler) DeleteScript(c *gin.Context)

DeleteScript godoc @Summary 删除脚本组件 @Description 按 scriptId 删除脚本;如果该脚本下存在 analysis_node 记录,或被某 workflow 的 dag_definition 引用,则拒绝删除 @Tags 工作流 @Produce json @Param scriptId path string true "脚本主键 ID" @Success 200 {object} map[string]string @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 409 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /script/delete/{scriptId} [post]

func (*WorkflowHandler) DeleteWorkflow

func (h *WorkflowHandler) DeleteWorkflow(c *gin.Context)

DeleteWorkflow godoc @Summary 删除工作流 @Description 按 workflowId 删除工作流;如果该 workflow 下存在 analysis 记录则拒绝删除 @Tags 工作流 @Produce json @Param workflowId path string true "工作流 ID" @Success 200 {object} map[string]string @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 409 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /workflow/delete/{workflowId} [post]

func (*WorkflowHandler) FindScript

func (h *WorkflowHandler) FindScript(c *gin.Context)

FindScript godoc @Summary 查询组件 @Description 查询 script:按主键 ID 查询并附带容器模板名称 @Tags 工作流 @Produce json @Param id path string true "Script 主键 ID" @Success 200 {object} map[string]any @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /find-script/{id} [get]

func (*WorkflowHandler) GenerateWorkflowJSON

func (h *WorkflowHandler) GenerateWorkflowJSON(c *gin.Context)

GenerateWorkflowJSON godoc @Summary 生成工作流 JSON @Description 根据 workflowId 读取工作流、脚本与 ContainerTemplateID,导出可落盘的 workflow.json @Tags 工作流 @Produce json @Param workflowId path string true "工作流 ID" @Success 200 {object} handler.WorkflowJSONExportResponse @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /workflow/{workflowId}/generate-workflow-json [post]

func (*WorkflowHandler) GetFromJSONByWorlflow

func (h *WorkflowHandler) GetFromJSONByWorlflow(c *gin.Context)

GetFromJSONByRelationID godoc @Summary 获取工作流表单配置 @Description 根据 workflowId 解析工作流 DAG,聚合输入/参数/formJson 配置 @Tags 工作流 @Produce json @Param workflowId path string true "工作流 ID" @Success 200 {object} handler.WorkflowFormJSONResponse @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /workflow/tools/get-from-json/{workflowId} [get]

func (*WorkflowHandler) GetScriptById

func (h *WorkflowHandler) GetScriptById(c *gin.Context)

GetScriptById godoc @Summary 根据 ID 获取脚本 @Description 根据主键 scriptId 查询脚本详情,附带 StoreVersion @Tags 工作流 @Produce json @Param scriptId path string true "脚本主键 ID" @Success 200 {object} types.ScriptVersion @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /script/{scriptId} [get]

func (*WorkflowHandler) GetScriptContent

func (h *WorkflowHandler) GetScriptContent(c *gin.Context)

GetScriptContent godoc @Summary 获取脚本文件内容 @Description 基于 scriptId 查询脚本主文件,返回绝对路径 path 与文件内容 content @Tags 工作流 @Produce json @Param scriptId path string true "脚本 ID" @Success 200 {object} map[string]interface{} @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /script/{scriptId}/content [get]

func (*WorkflowHandler) GetScriptForm

func (h *WorkflowHandler) GetScriptForm(c *gin.Context)

func (*WorkflowHandler) GetWorkflowById

func (h *WorkflowHandler) GetWorkflowById(c *gin.Context)

func (*WorkflowHandler) GetWorkflowForm

func (h *WorkflowHandler) GetWorkflowForm(c *gin.Context)

GetWorkflowForm godoc @Summary 获取工作流表单与分析数据 @Description 基于 workflowId 返回 formJson,并按 input_type 自动补充 analysis_result(sample 与按 role 分组的文件) @Tags 工作流 @Produce json @Param workflowId path string true "工作流 ID" @Success 200 {object} handler.WorkflowFormResponse @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /workflow/{workflowId}/form [get]

func (*WorkflowHandler) GetWorkflowVis

func (h *WorkflowHandler) GetWorkflowVis(c *gin.Context)

GetWorkflowVis godoc @Summary 获取工作流可视化 DAG @Description 根据 workflowId 返回 DAG 可视化结构(包含 nodes/edges,并补充 script 视图字段) @Tags 工作流 @Produce json @Param workflowId path string true "工作流 ID" @Success 200 {object} map[string]interface{} @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 404 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /tools/get-workflow-vis/{workflowId} [get]

func (*WorkflowHandler) InstallScript

func (h *WorkflowHandler) InstallScript(c *gin.Context)

func (*WorkflowHandler) InstallWorkflow

func (h *WorkflowHandler) InstallWorkflow(c *gin.Context)

func (*WorkflowHandler) PageScript

func (h *WorkflowHandler) PageScript(c *gin.Context)

PageScript godoc @Summary 分页查询脚本组件 @Description 分页查询 script,支持 query 条件过滤与排序;后续扩展字段仅需新增 query 字段并补充仓储过滤逻辑 @Tags 工作流 @Accept json @Produce json @Param request body handler.pageScriptRequest true "分页请求参数" @Success 200 {object} map[string]interface{} @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /workflow/page-script [post]

func (*WorkflowHandler) PageWorkflow

func (h *WorkflowHandler) PageWorkflow(c *gin.Context)

PageWorkflow godoc @Summary 分页查询工作流 @Description 分页查询 workflow,支持 query 条件过滤与排序;后续扩展字段仅需新增 query 字段并补充仓储过滤逻辑 @Tags 工作流 @Accept json @Produce json @Param request body handler.pageWorkflowRequest true "分页请求参数" @Success 200 {object} map[string]interface{} @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /workflow/page-workflow [post]

func (*WorkflowHandler) PublishScript

func (h *WorkflowHandler) PublishScript(c *gin.Context)

func (*WorkflowHandler) PublishWorkflow

func (h *WorkflowHandler) PublishWorkflow(c *gin.Context)

func (*WorkflowHandler) SaveScript

func (h *WorkflowHandler) SaveScript(c *gin.Context)

SaveScript godoc @Summary 保存脚本组件 @Description 保存 script 组件:当请求包含 id 时更新记录,否则创建新记录 @Tags 工作流 @Accept json @Produce json @Param request body handler.createScriptRequest true "请求参数" @Success 200 {object} types.Script @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /workflow/save-script [post]

func (*WorkflowHandler) SaveWorkflow

func (h *WorkflowHandler) SaveWorkflow(c *gin.Context)

SaveWorkflow godoc @Summary 保存工作流 @Description 保存 workflow 组件:当请求包含 id 时更新记录,否则创建新记录 @Tags 工作流 @Accept json @Produce json @Param request body handler.createWorkflowRequest true "请求参数" @Success 200 {object} types.Workflow @Failure 400 {object} errors.AppError @Failure 401 {object} errors.AppError @Failure 500 {object} errors.AppError @Security Bearer @Router /workflow/save-workflow [post]

type WorkflowJSONExportResponse

type WorkflowJSONExportResponse struct {
	Path               string           `json:"path"`
	WorkflowID         string           `json:"workflow_id"`
	Workflow           map[string]any   `json:"workflow"`
	Scripts            []map[string]any `json:"scripts"`
	ContainerTemplates []map[string]any `json:"container_templates"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL