// // Copyright 2026 The InfiniFlow Authors. All Rights Reserved. // // 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. // package handler import ( "net/http" "ragflow/internal/common" "github.com/gin-gonic/gin" "ragflow/internal/service" ) // ConnectorHandler connector handler type ConnectorHandler struct { connectorService *service.ConnectorService userService *service.UserService } // NewConnectorHandler create connector handler func NewConnectorHandler(connectorService *service.ConnectorService, userService *service.UserService) *ConnectorHandler { return &ConnectorHandler{ connectorService: connectorService, userService: userService, } } // ListConnectors list connectors // @Summary List Connectors // @Description Get list of connectors for the current user (equivalent to Python's list_connector) // @Tags connector // @Accept json // @Produce json // @Success 200 {object} service.ListConnectorsResponse // @Router /connector/list [get] func (h *ConnectorHandler) ListConnectors(c *gin.Context) { user, errorCode, errorMessage := GetUser(c) if errorCode != common.CodeSuccess { jsonError(c, errorCode, errorMessage) return } userID := user.ID // List connectors result, err := h.connectorService.ListConnectors(userID) if err != nil { c.JSON(http.StatusInternalServerError, gin.H{ "code": 500, "message": err.Error(), }) return } c.JSON(http.StatusOK, gin.H{ "code": 0, "data": result.Connectors, "message": "success", }) }