Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMHSanaei <ho3ein.sanaei@gmail.com>2023-03-17 19:07:49 +0300
committerMHSanaei <ho3ein.sanaei@gmail.com>2023-03-17 19:07:49 +0300
commit96786c94189f3d2f3f04c1915529c786228bdf42 (patch)
tree879085e09a3cd485f3246f46be907fe77eb84a1a /web/controller/inbound.go
parentbc56e637376142c370c31b17558fc3778a863bd2 (diff)
alireza
Diffstat (limited to 'web/controller/inbound.go')
-rw-r--r--web/controller/inbound.go80
1 files changed, 78 insertions, 2 deletions
diff --git a/web/controller/inbound.go b/web/controller/inbound.go
index 8ec90ed4..b567af8c 100644
--- a/web/controller/inbound.go
+++ b/web/controller/inbound.go
@@ -33,7 +33,10 @@ func (a *InboundController) initRouter(g *gin.RouterGroup) {
g.POST("/update/:id", a.updateInbound)
g.POST("/clientIps/:email", a.getClientIps)
g.POST("/clearClientIps/:email", a.clearClientIps)
- g.POST("/resetClientTraffic/:email", a.resetClientTraffic)
+ g.POST("/addClient/", a.addInboundClient)
+ g.POST("/delClient/:email", a.delInboundClient)
+ g.POST("/updateClient/:index", a.updateInboundClient)
+ g.POST("/:id/resetClientTraffic/:email", a.resetClientTraffic)
}
@@ -124,6 +127,7 @@ func (a *InboundController) updateInbound(c *gin.Context) {
a.xrayService.SetToNeedRestart()
}
}
+
func (a *InboundController) getClientIps(c *gin.Context) {
email := c.Param("email")
@@ -144,13 +148,85 @@ func (a *InboundController) clearClientIps(c *gin.Context) {
}
jsonMsg(c, "Log Cleared", nil)
}
+func (a *InboundController) addInboundClient(c *gin.Context) {
+ inbound := &model.Inbound{}
+ err := c.ShouldBind(inbound)
+ if err != nil {
+ jsonMsg(c, I18n(c, "pages.inbounds.revise"), err)
+ return
+ }
+
+ err = a.inboundService.AddInboundClient(inbound)
+ if err != nil {
+ jsonMsg(c, "something worng!", err)
+ return
+ }
+ jsonMsg(c, "Client added", nil)
+ if err == nil {
+ a.xrayService.SetToNeedRestart()
+ }
+}
+
+func (a *InboundController) delInboundClient(c *gin.Context) {
+ email := c.Param("email")
+ inbound := &model.Inbound{}
+ err := c.ShouldBind(inbound)
+ if err != nil {
+ jsonMsg(c, I18n(c, "pages.inbounds.revise"), err)
+ return
+ }
+
+ err = a.inboundService.DelInboundClient(inbound, email)
+ if err != nil {
+ jsonMsg(c, "something worng!", err)
+ return
+ }
+ jsonMsg(c, "Client deleted", nil)
+ if err == nil {
+ a.xrayService.SetToNeedRestart()
+ }
+}
+
+func (a *InboundController) updateInboundClient(c *gin.Context) {
+ index, err := strconv.Atoi(c.Param("index"))
+ if err != nil {
+ jsonMsg(c, I18n(c, "pages.inbounds.revise"), err)
+ return
+ }
+
+ inbound := &model.Inbound{}
+ err = c.ShouldBind(inbound)
+ if err != nil {
+ jsonMsg(c, I18n(c, "pages.inbounds.revise"), err)
+ return
+ }
+
+ err = a.inboundService.UpdateInboundClient(inbound, index)
+ if err != nil {
+ jsonMsg(c, "something worng!", err)
+ return
+ }
+ jsonMsg(c, "Client updated", nil)
+ if err == nil {
+ a.xrayService.SetToNeedRestart()
+ }
+}
+
func (a *InboundController) resetClientTraffic(c *gin.Context) {
+ id, err := strconv.Atoi(c.Param("id"))
+ if err != nil {
+ jsonMsg(c, I18n(c, "pages.inbounds.revise"), err)
+ return
+ }
email := c.Param("email")
- err := a.inboundService.ResetClientTraffic(email)
+ err = a.inboundService.ResetClientTraffic(id, email)
if err != nil {
jsonMsg(c, "something worng!", err)
return
}
jsonMsg(c, "traffic reseted", nil)
+ if err == nil {
+ a.xrayService.SetToNeedRestart()
+ }
}