123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- 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()
- }
|