diff --git a/web/controller/api.go b/web/controller/api.go index c64b27bf..c8ad2a67 100644 --- a/web/controller/api.go +++ b/web/controller/api.go @@ -19,6 +19,7 @@ func (a *APIController) initRouter(g *gin.RouterGroup) { g.GET("/list", a.getAllInbounds) g.GET("/get/:id", a.getSingleInbound) + g.GET("/getClientTraffics/:email", a.getClientTraffics) g.POST("/add", a.addInbound) g.POST("/del/:id", a.delInbound) g.POST("/update/:id", a.updateInbound) @@ -39,6 +40,9 @@ func (a *APIController) getAllInbounds(c *gin.Context) { func (a *APIController) getSingleInbound(c *gin.Context) { a.inboundController.getInbound(c) } +func (a *APIController) getClientTraffics(c *gin.Context) { + a.inboundController.getClientTraffics(c) +} func (a *APIController) addInbound(c *gin.Context) { a.inboundController.addInbound(c) } diff --git a/web/controller/inbound.go b/web/controller/inbound.go index 8e385248..f32cb766 100644 --- a/web/controller/inbound.go +++ b/web/controller/inbound.go @@ -78,6 +78,16 @@ func (a *InboundController) getInbound(c *gin.Context) { jsonObj(c, inbound, nil) } +func (a *InboundController) getClientTraffics(c *gin.Context) { + email := c.Param("email") + clientTraffics, err := a.inboundService.GetClientTrafficByEmail(email) + if err != nil { + jsonMsg(c, "Error getting traffics", err) + return + } + jsonObj(c, clientTraffics, nil) +} + func (a *InboundController) addInbound(c *gin.Context) { inbound := &model.Inbound{} err := c.ShouldBind(inbound) diff --git a/web/service/inbound.go b/web/service/inbound.go index d3a6be8a..374d15c3 100644 --- a/web/service/inbound.go +++ b/web/service/inbound.go @@ -710,7 +710,7 @@ func (s *InboundService) GetClientTrafficByEmail(email string) (traffic []*xray. db := database.GetDB() var traffics []*xray.ClientTraffic - err = db.Model(xray.ClientTraffic{}).Where("email like ?", "%"+email+"%").Find(&traffics).Error + err = db.Model(xray.ClientTraffic{}).Where("email = ?", email).Find(&traffics).Error if err != nil { if err == gorm.ErrRecordNotFound { logger.Warning(err)