diff --git a/internal/interfaces/utils.go b/internal/interfaces/utils.go index d7c06b5..dd6b773 100644 --- a/internal/interfaces/utils.go +++ b/internal/interfaces/utils.go @@ -5,6 +5,7 @@ import "github.com/gin-gonic/gin" type Utils interface { IsEmail(email string) bool GetUserUuidFromContext(c *gin.Context) (string, error) + GetRefreshUuidFromContext(c *gin.Context) (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 ae24ce6..77cb5a3 100644 --- a/pkg/utils/userUuid.go +++ b/pkg/utils/userUuid.go @@ -27,3 +27,22 @@ func (u *Utils) GetUserUuidFromContext(c *gin.Context) (string, error) { } return userUuid.String(), nil } + +func (u *Utils) GetRefreshUuidFromContext(c *gin.Context) (string, error) { + refreshRaw, exists := c.Get("refresh_uuid") + if !exists { + return "", errors.New("refresh_uuid not found in context") + } + + refreshUuidStr, ok := refreshRaw.(string) + if !ok { + return "", errors.New("refresh_uuid is not a string") + } + + refreshUuid, err := uuid.Parse(refreshUuidStr) + if err != nil { + return "", errors.New("error parsing refresh_uuid") + } + + return refreshUuid.String(), nil +}