package controller import ( "github.com/mhsanaei/3x-ui/v2/web/service" "github.com/gin-gonic/gin" ) // APIController handles the main API routes for the 3x-ui panel, including inbounds and server management. type APIController struct { BaseController inboundController *InboundController serverController *ServerController Tgbot service.Tgbot } // NewAPIController creates a new APIController instance and initializes its routes. func NewAPIController(g *gin.RouterGroup) *APIController { a := &APIController{} a.initRouter(g) return a } // initRouter sets up the API routes for inbounds, server, and other endpoints. func (a *APIController) initRouter(g *gin.RouterGroup) { // Main API group api := g.Group("/panel/api") api.Use(a.checkLogin) // Inbounds API inbounds := api.Group("/inbounds") a.inboundController = NewInboundController(inbounds) // Server API server := api.Group("/server") a.serverController = NewServerController(server) // Extra routes api.GET("/backuptotgbot", a.BackuptoTgbot) } // BackuptoTgbot sends a backup of the panel data to Telegram bot admins. func (a *APIController) BackuptoTgbot(c *gin.Context) { a.Tgbot.SendBackupToAdmins() }