From afb346ce4e78aabcb587b3f77da25906d539594e Mon Sep 17 00:00:00 2001 From: L4B0MB4 Date: Sat, 30 Nov 2024 18:27:55 +0100 Subject: [PATCH 1/6] Integrate TCP event client and update event polling mechanism for improved event handling --- cmd/queryer/main.go | 20 +++++++++++++++++++- go.mod | 4 ++-- go.sum | 16 ++++++++++++++++ 3 files changed, 37 insertions(+), 3 deletions(-) diff --git a/cmd/queryer/main.go b/cmd/queryer/main.go index 5dac3c2..10feb54 100644 --- a/cmd/queryer/main.go +++ b/cmd/queryer/main.go @@ -4,6 +4,7 @@ import ( "os" "github.com/L4B0MB4/EVTSRC/pkg/client" + tcpClient "github.com/L4B0MB4/EVTSRC/pkg/tcp/client" "github.com/L4B0MB4/PRYVT/identification/pkg/query/eventhandling" "github.com/L4B0MB4/PRYVT/identification/pkg/query/httphandler" "github.com/L4B0MB4/PRYVT/identification/pkg/query/httphandler/controller" @@ -46,7 +47,24 @@ func main() { userEventHandler := eventhandling.NewUserEventHandler(userRepo) eventPolling := eventpolling.NewEventPolling(c, eventRepo, userEventHandler) - go eventPolling.PollEvents() + tcpC, err := tcpClient.NewTcpEventClient() + if err != nil { + log.Error().Err(err).Msg("Unsuccessful initialization of tcp client") + return + } + channel := make(chan string, 1) + go tcpC.ListenForEvents(channel) + + eventPolling.PollEventsUntilEmpty() + go func() { + for { + select { + case event := <-channel: + log.Info().Msgf("Received event: %s", event) + eventPolling.PollEventsUntilEmpty() + } + } + }() h.Start() } diff --git a/go.mod b/go.mod index e9f2919..af0f202 100644 --- a/go.mod +++ b/go.mod @@ -5,8 +5,8 @@ go 1.23.1 require github.com/mattn/go-sqlite3 v1.14.24 require ( - github.com/L4B0MB4/EVTSRC v0.4.5 // indirect - github.com/PRYVT/utils v0.2.0 // indirect + github.com/L4B0MB4/EVTSRC v0.5.1 // indirect + github.com/PRYVT/utils v0.2.0-rc-2 // indirect github.com/bytedance/sonic v1.12.2 // indirect github.com/bytedance/sonic/loader v0.2.0 // indirect github.com/cloudwego/base64x v0.1.4 // indirect diff --git a/go.sum b/go.sum index fd86ff0..183be29 100644 --- a/go.sum +++ b/go.sum @@ -16,12 +16,28 @@ github.com/L4B0MB4/EVTSRC v0.4.0 h1:Y0/oEoMAv9kgGH/dgN9v1YBno6ZghXbWNPixScz9CX8= github.com/L4B0MB4/EVTSRC v0.4.0/go.mod h1:hpyNdNWqikZ6dcm8dhZAXgnAXZQNGAfXgRw902zjby0= github.com/L4B0MB4/EVTSRC v0.4.5 h1:HA4tp4fa/oCPTCl3gTD2FkRjo+nFKWm4rLmpudxcxXg= github.com/L4B0MB4/EVTSRC v0.4.5/go.mod h1:hpyNdNWqikZ6dcm8dhZAXgnAXZQNGAfXgRw902zjby0= +github.com/L4B0MB4/EVTSRC v0.5.0-rc-1 h1:r8FLKDAnFh0rOZVXTqBB9uQRu800MpAQoszNpW9g+QQ= +github.com/L4B0MB4/EVTSRC v0.5.0-rc-1/go.mod h1:hpyNdNWqikZ6dcm8dhZAXgnAXZQNGAfXgRw902zjby0= +github.com/L4B0MB4/EVTSRC v0.5.0-rc-2 h1:fTuKRKwmhshP3PYkq1Gu/3pywAKcbGGUo/okhZEfGe8= +github.com/L4B0MB4/EVTSRC v0.5.0-rc-2/go.mod h1:hpyNdNWqikZ6dcm8dhZAXgnAXZQNGAfXgRw902zjby0= +github.com/L4B0MB4/EVTSRC v0.5.0-rc-3 h1:bI9Fhh0zq6zU3lVCYBynpYhZb91g1o4hsZ703RCMkn8= +github.com/L4B0MB4/EVTSRC v0.5.0-rc-3/go.mod h1:hpyNdNWqikZ6dcm8dhZAXgnAXZQNGAfXgRw902zjby0= +github.com/L4B0MB4/EVTSRC v0.5.0-rc-4 h1:gUFnWbNnxlk3yYKKs1ymjySYoVyDyWbk0cmXZ3vyWcg= +github.com/L4B0MB4/EVTSRC v0.5.0-rc-4/go.mod h1:hpyNdNWqikZ6dcm8dhZAXgnAXZQNGAfXgRw902zjby0= +github.com/L4B0MB4/EVTSRC v0.5.0-rc-5 h1:CT3eZqVq2b4ghoG5g5bvvrcXZUGVy3AQoV3NAZ12Al0= +github.com/L4B0MB4/EVTSRC v0.5.0-rc-5/go.mod h1:hpyNdNWqikZ6dcm8dhZAXgnAXZQNGAfXgRw902zjby0= +github.com/L4B0MB4/EVTSRC v0.5.1 h1:EB/lK0FTWtepToOtRFJdUhBf6tlb1L0bIRbRTMwArsQ= +github.com/L4B0MB4/EVTSRC v0.5.1/go.mod h1:hpyNdNWqikZ6dcm8dhZAXgnAXZQNGAfXgRw902zjby0= github.com/PRYVT/utils v0.1.0 h1:Oq/sKHTKBVoAX+pLJMniYaZfv0ReDlQ+5E8qpKGiVjI= github.com/PRYVT/utils v0.1.0/go.mod h1:RDgZFSTf1GPnpjVqnw0PSY68bzyp+WTK/wgAklOBFxY= github.com/PRYVT/utils v0.1.1 h1:Y/WHkTHID0T40O2XfzlLM1QsDyQWE8FtH8ncaU4ags8= github.com/PRYVT/utils v0.1.1/go.mod h1:b7zk2FAGwJ8BPJx2JQ8qd+bA59g5EY7Y1vZQPWZHK3s= github.com/PRYVT/utils v0.1.2 h1:U9qhq+18iIblQDrM4I0fmJkvlZ+BCY+DIjjKI4ebtlk= github.com/PRYVT/utils v0.1.2/go.mod h1:b7zk2FAGwJ8BPJx2JQ8qd+bA59g5EY7Y1vZQPWZHK3s= +github.com/PRYVT/utils v0.2.0-rc-1 h1:CwYscVZqozFxc8vdtZnoNv6XYfu7RPODZ7g3ecNvKPE= +github.com/PRYVT/utils v0.2.0-rc-1/go.mod h1:j61GmoyWWXgnCq/laZTIJm4yhD0PreLDMZnYQqjSv7w= +github.com/PRYVT/utils v0.2.0-rc-2 h1:7fp2kgp22HIQxBCNrYStxPuiReCwbgrqIuWCZ0pBsBM= +github.com/PRYVT/utils v0.2.0-rc-2/go.mod h1:j61GmoyWWXgnCq/laZTIJm4yhD0PreLDMZnYQqjSv7w= github.com/PRYVT/utils v0.2.0 h1:hWdHchXlGOYlJ1nfMmGffq/EjFn3ncvzTgsGCLUpiEE= github.com/PRYVT/utils v0.2.0/go.mod h1:j61GmoyWWXgnCq/laZTIJm4yhD0PreLDMZnYQqjSv7w= github.com/bytedance/sonic v1.11.6 h1:oUp34TzMlL+OY1OUWxHqsdkgC/Zfc85zGqw9siXjrc0= From ab9deb4078a31697607e7399aa42b67e4adff369 Mon Sep 17 00:00:00 2001 From: L4B0MB4 Date: Sat, 30 Nov 2024 18:37:21 +0100 Subject: [PATCH 2/6] Update PRYVT/utils dependency to v0.2.1 --- go.mod | 2 +- go.sum | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index af0f202..c304f5f 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require github.com/mattn/go-sqlite3 v1.14.24 require ( github.com/L4B0MB4/EVTSRC v0.5.1 // indirect - github.com/PRYVT/utils v0.2.0-rc-2 // indirect + github.com/PRYVT/utils v0.2.1 // indirect github.com/bytedance/sonic v1.12.2 // indirect github.com/bytedance/sonic/loader v0.2.0 // indirect github.com/cloudwego/base64x v0.1.4 // indirect diff --git a/go.sum b/go.sum index 183be29..8a999f4 100644 --- a/go.sum +++ b/go.sum @@ -40,6 +40,8 @@ github.com/PRYVT/utils v0.2.0-rc-2 h1:7fp2kgp22HIQxBCNrYStxPuiReCwbgrqIuWCZ0pBsB github.com/PRYVT/utils v0.2.0-rc-2/go.mod h1:j61GmoyWWXgnCq/laZTIJm4yhD0PreLDMZnYQqjSv7w= github.com/PRYVT/utils v0.2.0 h1:hWdHchXlGOYlJ1nfMmGffq/EjFn3ncvzTgsGCLUpiEE= github.com/PRYVT/utils v0.2.0/go.mod h1:j61GmoyWWXgnCq/laZTIJm4yhD0PreLDMZnYQqjSv7w= +github.com/PRYVT/utils v0.2.1 h1:GiTbziM3lqRLc4EWGV28+T/aKaY+B80KTqnkBklf9q0= +github.com/PRYVT/utils v0.2.1/go.mod h1:j61GmoyWWXgnCq/laZTIJm4yhD0PreLDMZnYQqjSv7w= github.com/bytedance/sonic v1.11.6 h1:oUp34TzMlL+OY1OUWxHqsdkgC/Zfc85zGqw9siXjrc0= github.com/bytedance/sonic v1.11.6/go.mod h1:LysEHSvpvDySVdC2f87zGWf6CIKJcAvqab1ZaiQtds4= github.com/bytedance/sonic v1.12.2 h1:oaMFuRTpMHYLpCntGca65YWt5ny+wAceDERTkT2L9lg= From bce8d3e25985d078c88ef603d7511e4f90216214 Mon Sep 17 00:00:00 2001 From: L4B0MB4 Date: Sat, 30 Nov 2024 18:52:36 +0100 Subject: [PATCH 3/6] Update EVTSRC dependency to v0.5.2 --- go.mod | 2 +- go.sum | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index c304f5f..4d76404 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.23.1 require github.com/mattn/go-sqlite3 v1.14.24 require ( - github.com/L4B0MB4/EVTSRC v0.5.1 // indirect + github.com/L4B0MB4/EVTSRC v0.5.2 // indirect github.com/PRYVT/utils v0.2.1 // indirect github.com/bytedance/sonic v1.12.2 // indirect github.com/bytedance/sonic/loader v0.2.0 // indirect diff --git a/go.sum b/go.sum index 8a999f4..3f2cda2 100644 --- a/go.sum +++ b/go.sum @@ -28,6 +28,8 @@ github.com/L4B0MB4/EVTSRC v0.5.0-rc-5 h1:CT3eZqVq2b4ghoG5g5bvvrcXZUGVy3AQoV3NAZ1 github.com/L4B0MB4/EVTSRC v0.5.0-rc-5/go.mod h1:hpyNdNWqikZ6dcm8dhZAXgnAXZQNGAfXgRw902zjby0= github.com/L4B0MB4/EVTSRC v0.5.1 h1:EB/lK0FTWtepToOtRFJdUhBf6tlb1L0bIRbRTMwArsQ= github.com/L4B0MB4/EVTSRC v0.5.1/go.mod h1:hpyNdNWqikZ6dcm8dhZAXgnAXZQNGAfXgRw902zjby0= +github.com/L4B0MB4/EVTSRC v0.5.2 h1:bAOYlUmcZ2bg8rWIKnHLnxZPgXrPYyrQbtlz49BKlp4= +github.com/L4B0MB4/EVTSRC v0.5.2/go.mod h1:hpyNdNWqikZ6dcm8dhZAXgnAXZQNGAfXgRw902zjby0= github.com/PRYVT/utils v0.1.0 h1:Oq/sKHTKBVoAX+pLJMniYaZfv0ReDlQ+5E8qpKGiVjI= github.com/PRYVT/utils v0.1.0/go.mod h1:RDgZFSTf1GPnpjVqnw0PSY68bzyp+WTK/wgAklOBFxY= github.com/PRYVT/utils v0.1.1 h1:Y/WHkTHID0T40O2XfzlLM1QsDyQWE8FtH8ncaU4ags8= From e57d4d723e46f453e9d445cccdba5493b52df100 Mon Sep 17 00:00:00 2001 From: L4B0MB4 Date: Sat, 30 Nov 2024 19:06:43 +0100 Subject: [PATCH 4/6] Update EVTSRC dependency to v0.5.3 --- go.mod | 2 +- go.sum | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 4d76404..adee60e 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.23.1 require github.com/mattn/go-sqlite3 v1.14.24 require ( - github.com/L4B0MB4/EVTSRC v0.5.2 // indirect + github.com/L4B0MB4/EVTSRC v0.5.3 // indirect github.com/PRYVT/utils v0.2.1 // indirect github.com/bytedance/sonic v1.12.2 // indirect github.com/bytedance/sonic/loader v0.2.0 // indirect diff --git a/go.sum b/go.sum index 3f2cda2..bf88af2 100644 --- a/go.sum +++ b/go.sum @@ -30,6 +30,8 @@ github.com/L4B0MB4/EVTSRC v0.5.1 h1:EB/lK0FTWtepToOtRFJdUhBf6tlb1L0bIRbRTMwArsQ= github.com/L4B0MB4/EVTSRC v0.5.1/go.mod h1:hpyNdNWqikZ6dcm8dhZAXgnAXZQNGAfXgRw902zjby0= github.com/L4B0MB4/EVTSRC v0.5.2 h1:bAOYlUmcZ2bg8rWIKnHLnxZPgXrPYyrQbtlz49BKlp4= github.com/L4B0MB4/EVTSRC v0.5.2/go.mod h1:hpyNdNWqikZ6dcm8dhZAXgnAXZQNGAfXgRw902zjby0= +github.com/L4B0MB4/EVTSRC v0.5.3 h1:oD34lBIO4nY8Jvko8SmpITicbQipPUoKUn3AzBcDKKA= +github.com/L4B0MB4/EVTSRC v0.5.3/go.mod h1:hpyNdNWqikZ6dcm8dhZAXgnAXZQNGAfXgRw902zjby0= github.com/PRYVT/utils v0.1.0 h1:Oq/sKHTKBVoAX+pLJMniYaZfv0ReDlQ+5E8qpKGiVjI= github.com/PRYVT/utils v0.1.0/go.mod h1:RDgZFSTf1GPnpjVqnw0PSY68bzyp+WTK/wgAklOBFxY= github.com/PRYVT/utils v0.1.1 h1:Y/WHkTHID0T40O2XfzlLM1QsDyQWE8FtH8ncaU4ags8= From 0831b5aa12d0b4fe130991b559a4ec9f9775f6fa Mon Sep 17 00:00:00 2001 From: L4B0MB4 Date: Sun, 1 Dec 2024 19:06:53 +0100 Subject: [PATCH 5/6] Handle nil user case in GetToken method for improved error handling --- pkg/query/httphandler/controller/user_controller.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/query/httphandler/controller/user_controller.go b/pkg/query/httphandler/controller/user_controller.go index 32b2d03..d424a4d 100644 --- a/pkg/query/httphandler/controller/user_controller.go +++ b/pkg/query/httphandler/controller/user_controller.go @@ -32,7 +32,7 @@ func (ctrl *UserController) GetToken(c *gin.Context) { userUuid := hash.GenerateGUID(tokenReq.UserName) user, err := ctrl.userRepo.GetUserById(userUuid) - if err != nil { + if err != nil || user == nil { c.JSON(http.StatusBadRequest, gin.H{"error": "User not found"}) return } From 2216d91863f12f07e754865043b00741995448c2 Mon Sep 17 00:00:00 2001 From: L4B0MB4 Date: Sun, 1 Dec 2024 19:14:57 +0100 Subject: [PATCH 6/6] Refactor UserController to remove token manager dependency and update utils dependency to v0.3.0 --- cmd/queryer/main.go | 9 ++------- go.mod | 2 +- go.sum | 2 ++ pkg/query/httphandler/controller/user_controller.go | 13 ++++++------- 4 files changed, 11 insertions(+), 15 deletions(-) diff --git a/cmd/queryer/main.go b/cmd/queryer/main.go index 10feb54..11434b4 100644 --- a/cmd/queryer/main.go +++ b/cmd/queryer/main.go @@ -33,15 +33,10 @@ func main() { log.Error().Err(err).Msg("Unsuccessful initialization of client") return } - tokenManager, err := auth.NewTokenManager() - if err != nil { - log.Error().Err(err).Msg("Unsuccessful initialization of token manager") - return - } eventRepo := utilsRepo.NewEventRepository(conn) userRepo := repository.NewUserRepository(conn) - uc := controller.NewUserController(userRepo, tokenManager) - aut := auth.NewAuthMiddleware(tokenManager) + uc := controller.NewUserController(userRepo) + aut := auth.NewAuthMiddleware() h := httphandler.NewHttpHandler(uc, aut) userEventHandler := eventhandling.NewUserEventHandler(userRepo) diff --git a/go.mod b/go.mod index adee60e..d94889f 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require github.com/mattn/go-sqlite3 v1.14.24 require ( github.com/L4B0MB4/EVTSRC v0.5.3 // indirect - github.com/PRYVT/utils v0.2.1 // indirect + github.com/PRYVT/utils v0.3.0 // indirect github.com/bytedance/sonic v1.12.2 // indirect github.com/bytedance/sonic/loader v0.2.0 // indirect github.com/cloudwego/base64x v0.1.4 // indirect diff --git a/go.sum b/go.sum index bf88af2..8b0c771 100644 --- a/go.sum +++ b/go.sum @@ -46,6 +46,8 @@ github.com/PRYVT/utils v0.2.0 h1:hWdHchXlGOYlJ1nfMmGffq/EjFn3ncvzTgsGCLUpiEE= github.com/PRYVT/utils v0.2.0/go.mod h1:j61GmoyWWXgnCq/laZTIJm4yhD0PreLDMZnYQqjSv7w= github.com/PRYVT/utils v0.2.1 h1:GiTbziM3lqRLc4EWGV28+T/aKaY+B80KTqnkBklf9q0= github.com/PRYVT/utils v0.2.1/go.mod h1:j61GmoyWWXgnCq/laZTIJm4yhD0PreLDMZnYQqjSv7w= +github.com/PRYVT/utils v0.3.0 h1:E0q08Gba+TdIsflKBA2XJLEE/RqbB8u3oXxy1wM7l+s= +github.com/PRYVT/utils v0.3.0/go.mod h1:j61GmoyWWXgnCq/laZTIJm4yhD0PreLDMZnYQqjSv7w= github.com/bytedance/sonic v1.11.6 h1:oUp34TzMlL+OY1OUWxHqsdkgC/Zfc85zGqw9siXjrc0= github.com/bytedance/sonic v1.11.6/go.mod h1:LysEHSvpvDySVdC2f87zGWf6CIKJcAvqab1ZaiQtds4= github.com/bytedance/sonic v1.12.2 h1:oaMFuRTpMHYLpCntGca65YWt5ny+wAceDERTkT2L9lg= diff --git a/pkg/query/httphandler/controller/user_controller.go b/pkg/query/httphandler/controller/user_controller.go index d424a4d..89ff9d7 100644 --- a/pkg/query/httphandler/controller/user_controller.go +++ b/pkg/query/httphandler/controller/user_controller.go @@ -13,12 +13,11 @@ import ( ) type UserController struct { - userRepo *repository.UserRepository - tokenManager *auth.TokenManager + userRepo *repository.UserRepository } -func NewUserController(userRepo *repository.UserRepository, tokenManager *auth.TokenManager) *UserController { - return &UserController{userRepo: userRepo, tokenManager: tokenManager} +func NewUserController(userRepo *repository.UserRepository) *UserController { + return &UserController{userRepo: userRepo} } func (ctrl *UserController) GetToken(c *gin.Context) { @@ -42,7 +41,7 @@ func (ctrl *UserController) GetToken(c *gin.Context) { c.JSON(http.StatusUnauthorized, gin.H{"error": "Unauthorized"}) return } - token, err := ctrl.tokenManager.CreateToken(userUuid) + token, err := auth.CreateToken(userUuid) if err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) return @@ -52,12 +51,12 @@ func (ctrl *UserController) GetToken(c *gin.Context) { func (ctrl *UserController) RefreshToken(c *gin.Context) { tokenStr := auth.GetTokenFromHeader(c) - userUuid, err := ctrl.tokenManager.GetUserUuidFromToken(tokenStr) + userUuid, err := auth.GetUserUuidFromToken(tokenStr) if err != nil { c.JSON(http.StatusUnauthorized, gin.H{"error": "Unauthorized"}) return } - token, err := ctrl.tokenManager.CreateToken(userUuid) + token, err := auth.CreateToken(userUuid) if err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})