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>2024-07-23 12:28:28 +0300
committermhsanaei <ho3ein.sanaei@gmail.com>2024-07-23 12:28:28 +0300
commitc7906e85980c45fd3f37d11b80e14a1075d94d4f (patch)
treeb9c20633175fc4592d8695553d78d8f18bf49d72 /web/service
parente1bc43da5f1f06ea00bd28923b37b5d029522359 (diff)
API - Get client's traffic By ID
Co-Authored-By: Hassan Ali Gilani <mr.ajaxian@gmail.com>
Diffstat (limited to 'web/service')
-rw-r--r--web/service/inbound.go19
1 files changed, 19 insertions, 0 deletions
diff --git a/web/service/inbound.go b/web/service/inbound.go
index 6f9aac98..25a43f47 100644
--- a/web/service/inbound.go
+++ b/web/service/inbound.go
@@ -1750,6 +1750,25 @@ func (s *InboundService) GetClientTrafficByEmail(email string) (traffic *xray.Cl
return nil, nil
}
+func (s *InboundService) GetClientTrafficByID(id string) ([]xray.ClientTraffic, error) {
+ db := database.GetDB()
+ var traffics []xray.ClientTraffic
+
+ err := db.Model(xray.ClientTraffic{}).Where(`email IN(
+ SELECT JSON_EXTRACT(client.value, '$.email') as email
+ FROM inbounds,
+ JSON_EACH(JSON_EXTRACT(inbounds.settings, '$.clients')) AS client
+ WHERE
+ JSON_EXTRACT(client.value, '$.id') in (?)
+ )`, id).Find(&traffics).Error
+
+ if err != nil {
+ logger.Debug(err)
+ return nil, err
+ }
+ return traffics, err
+}
+
func (s *InboundService) SearchClientTraffic(query string) (traffic *xray.ClientTraffic, err error) {
db := database.GetDB()
inbound := &model.Inbound{}