diff options
| author | Sanaei <ho3ein.sanaei@gmail.com> | 2025-09-09 02:22:43 +0300 |
|---|---|---|
| committer | mhsanaei <ho3ein.sanaei@gmail.com> | 2025-09-09 03:32:05 +0300 |
| commit | fe9f0d1d0e86f55a97e3905358888f595b9bd08b (patch) | |
| tree | 2210606a64b38e89edf4197268957913efbb7f06 /web/controller | |
| parent | 18d74d54caa5f55b8d9048b49ad28b42be31b322 (diff) | |
api (#3434)
Diffstat (limited to 'web/controller')
| -rw-r--r-- | web/controller/api.go | 52 | ||||
| -rw-r--r-- | web/controller/inbound.go | 9 | ||||
| -rw-r--r-- | web/controller/server.go | 38 | ||||
| -rw-r--r-- | web/controller/xui.go | 2 |
4 files changed, 54 insertions, 47 deletions
diff --git a/web/controller/api.go b/web/controller/api.go index 32af934e..6edd7939 100644 --- a/web/controller/api.go +++ b/web/controller/api.go @@ -9,6 +9,7 @@ import ( type APIController struct { BaseController inboundController *InboundController + serverController *ServerController Tgbot service.Tgbot } @@ -19,43 +20,22 @@ func NewAPIController(g *gin.RouterGroup) *APIController { } func (a *APIController) initRouter(g *gin.RouterGroup) { - g = g.Group("/panel/api/inbounds") - g.Use(a.checkLogin) - - a.inboundController = NewInboundController(g) - - inboundRoutes := []struct { - Method string - Path string - Handler gin.HandlerFunc - }{ - {"GET", "/createbackup", a.createBackup}, - {"GET", "/list", a.inboundController.getInbounds}, - {"GET", "/get/:id", a.inboundController.getInbound}, - {"GET", "/getClientTraffics/:email", a.inboundController.getClientTraffics}, - {"GET", "/getClientTrafficsById/:id", a.inboundController.getClientTrafficsById}, - {"POST", "/add", a.inboundController.addInbound}, - {"POST", "/del/:id", a.inboundController.delInbound}, - {"POST", "/update/:id", a.inboundController.updateInbound}, - {"POST", "/clientIps/:email", a.inboundController.getClientIps}, - {"POST", "/clearClientIps/:email", a.inboundController.clearClientIps}, - {"POST", "/addClient", a.inboundController.addInboundClient}, - {"POST", "/:id/delClient/:clientId", a.inboundController.delInboundClient}, - {"POST", "/updateClient/:clientId", a.inboundController.updateInboundClient}, - {"POST", "/:id/resetClientTraffic/:email", a.inboundController.resetClientTraffic}, - {"POST", "/resetAllTraffics", a.inboundController.resetAllTraffics}, - {"POST", "/resetAllClientTraffics/:id", a.inboundController.resetAllClientTraffics}, - {"POST", "/delDepletedClients/:id", a.inboundController.delDepletedClients}, - {"POST", "/onlines", a.inboundController.onlines}, - {"POST", "/lastOnline", a.inboundController.lastOnline}, - {"POST", "/updateClientTraffic/:email", a.inboundController.updateClientTraffic}, - } - - for _, route := range inboundRoutes { - g.Handle(route.Method, route.Path, route.Handler) - } + // 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) } -func (a *APIController) createBackup(c *gin.Context) { +func (a *APIController) BackuptoTgbot(c *gin.Context) { a.Tgbot.SendBackupToAdmins() } diff --git a/web/controller/inbound.go b/web/controller/inbound.go index 9ff2f302..10a58daa 100644 --- a/web/controller/inbound.go +++ b/web/controller/inbound.go @@ -24,9 +24,12 @@ func NewInboundController(g *gin.RouterGroup) *InboundController { } func (a *InboundController) initRouter(g *gin.RouterGroup) { - g = g.Group("/inbound") - g.POST("/list", a.getInbounds) + g.GET("/list", a.getInbounds) + g.GET("/get/:id", a.getInbound) + g.GET("/getClientTraffics/:email", a.getClientTraffics) + g.GET("/getClientTrafficsById/:id", a.getClientTrafficsById) + g.POST("/add", a.addInbound) g.POST("/del/:id", a.delInbound) g.POST("/update/:id", a.updateInbound) @@ -41,6 +44,8 @@ func (a *InboundController) initRouter(g *gin.RouterGroup) { g.POST("/delDepletedClients/:id", a.delDepletedClients) g.POST("/import", a.importInbound) g.POST("/onlines", a.onlines) + g.POST("/lastOnline", a.lastOnline) + g.POST("/updateClientTraffic/:email", a.updateClientTraffic) } func (a *InboundController) getInbounds(c *gin.Context) { diff --git a/web/controller/server.go b/web/controller/server.go index b1174b8f..d5ae688b 100644 --- a/web/controller/server.go +++ b/web/controller/server.go @@ -37,11 +37,17 @@ func NewServerController(g *gin.RouterGroup) *ServerController { } func (a *ServerController) initRouter(g *gin.RouterGroup) { - g = g.Group("/server") - g.Use(a.checkLogin) - g.POST("/status", a.status) - g.POST("/getXrayVersion", a.getXrayVersion) + g.GET("/status", a.status) + g.GET("/getXrayVersion", a.getXrayVersion) + g.GET("/getConfigJson", a.getConfigJson) + g.GET("/getDb", a.getDb) + g.GET("/getNewUUID", a.getNewUUID) + g.GET("/getNewX25519Cert", a.getNewX25519Cert) + g.GET("/getNewmldsa65", a.getNewmldsa65) + g.GET("/getNewmlkem768", a.getNewmlkem768) + g.GET("/getNewVlessEnc", a.getNewVlessEnc) + g.POST("/stopXrayService", a.stopXrayService) g.POST("/restartXrayService", a.restartXrayService) g.POST("/installXray/:version", a.installXray) @@ -49,13 +55,8 @@ func (a *ServerController) initRouter(g *gin.RouterGroup) { g.POST("/updateGeofile/:fileName", a.updateGeofile) g.POST("/logs/:count", a.getLogs) g.POST("/xraylogs/:count", a.getXrayLogs) - g.POST("/getConfigJson", a.getConfigJson) - g.GET("/getDb", a.getDb) g.POST("/importDB", a.importDB) - g.POST("/getNewX25519Cert", a.getNewX25519Cert) - g.POST("/getNewmldsa65", a.getNewmldsa65) g.POST("/getNewEchCert", a.getNewEchCert) - g.POST("/getNewVlessEnc", a.getNewVlessEnc) } func (a *ServerController) refreshStatus() { @@ -276,3 +277,22 @@ func (a *ServerController) getNewVlessEnc(c *gin.Context) { } jsonObj(c, out, nil) } + +func (a *ServerController) getNewUUID(c *gin.Context) { + uuidResp, err := a.serverService.GetNewUUID() + if err != nil { + jsonMsg(c, "Failed to generate UUID", err) + return + } + + jsonObj(c, uuidResp, nil) +} + +func (a *ServerController) getNewmlkem768(c *gin.Context) { + out, err := a.serverService.GetNewmlkem768() + if err != nil { + jsonMsg(c, "Failed to generate mlkem768 keys", err) + return + } + jsonObj(c, out, nil) +} diff --git a/web/controller/xui.go b/web/controller/xui.go index 5b4c0a18..1afbc427 100644 --- a/web/controller/xui.go +++ b/web/controller/xui.go @@ -8,6 +8,7 @@ type XUIController struct { BaseController inboundController *InboundController + serverController *ServerController settingController *SettingController xraySettingController *XraySettingController } @@ -28,6 +29,7 @@ func (a *XUIController) initRouter(g *gin.RouterGroup) { g.GET("/xray", a.xraySettings) a.inboundController = NewInboundController(g) + a.serverController = NewServerController(g) a.settingController = NewSettingController(g) a.xraySettingController = NewXraySettingController(g) } |
