From 360d265672f61524539eb8d17099215911ea4e54 Mon Sep 17 00:00:00 2001 From: nquidox Date: Mon, 8 Sep 2025 23:57:14 +0300 Subject: [PATCH] extended method to get auth data --- internal/interfaces/utils.go | 2 +- pkg/utils/userUuid.go | 34 +++++++++++++++++++++++++--------- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/internal/interfaces/utils.go b/internal/interfaces/utils.go index d1b8f7c..d8ccf07 100644 --- a/internal/interfaces/utils.go +++ b/internal/interfaces/utils.go @@ -5,7 +5,7 @@ import "github.com/gin-gonic/gin" type Utils interface { IsEmail(email string) bool GetUserUuidFromContext(c *gin.Context) (string, error) - GetUserAndTokenUuidFromContext(c *gin.Context) (string, string, error) + GetAllTokensFromContext(c *gin.Context) (string, string, string, error) HashPassword(password string) (string, error) ComparePasswords(hashedPassword string, plainPassword string) error } diff --git a/pkg/utils/userUuid.go b/pkg/utils/userUuid.go index 1f1c867..16b7ea3 100644 --- a/pkg/utils/userUuid.go +++ b/pkg/utils/userUuid.go @@ -28,42 +28,58 @@ func (u *Utils) GetUserUuidFromContext(c *gin.Context) (string, error) { return userUuid.String(), nil } -func (u *Utils) GetUserAndTokenUuidFromContext(c *gin.Context) (string, string, error) { +func (u *Utils) GetAllTokensFromContext(c *gin.Context) (string, string, string, error) { if c == nil { - return "", "", errors.New("context is nil") + return "", "", "", errors.New("context is nil") } //get user uuid userRaw, exists := c.Get("userUuid") if !exists { - return "", "", errors.New("user uuid not found in context") + return "", "", "", errors.New("user uuid not found in context") } userUuidStr, ok := userRaw.(string) if !ok { - return "", "", errors.New("user uuid is not a string") + return "", "", "", errors.New("user uuid is not a string") } userUuid, err := uuid.Parse(userUuidStr) if err != nil { - return "", "", errors.New("error parsing user uuid") + return "", "", "", errors.New("error parsing user uuid") } //get refresh token uuid refreshRaw, exists := c.Get("refreshUuid") if !exists { - return "", "", errors.New("user uuid not found in context") + return "", "", "", errors.New("refresh uuid not found in context") } refreshUuidStr, ok := refreshRaw.(string) if !ok { - return "", "", errors.New("user uuid is not a string") + return "", "", "", errors.New("refresh uuid is not a string") } refreshUuid, err := uuid.Parse(refreshUuidStr) if err != nil { - return "", "", errors.New("error parsing user uuid") + return "", "", "", errors.New("error parsing refresh uuid") } - return userUuid.String(), refreshUuid.String(), nil + //get session token uuid + sessionRaw, exists := c.Get("sessionUuid") + if !exists { + return "", "", "", errors.New("session uuid not found in context") + } + + sessionUuidStr, ok := sessionRaw.(string) + if !ok { + return "", "", "", errors.New("session uuid is not a string") + } + + sessionUuid, err := uuid.Parse(sessionUuidStr) + if err != nil { + return "", "", "", errors.New("error parsing session uuid") + } + + return userUuid.String(), refreshUuid.String(), sessionUuid.String(), nil }