diff --git a/server/resolvers/login.go b/server/resolvers/login.go index fa5d409..e0583ce 100644 --- a/server/resolvers/login.go +++ b/server/resolvers/login.go @@ -5,6 +5,7 @@ import ( "fmt" "strings" "time" + "os" "github.com/google/uuid" @@ -19,6 +20,7 @@ import ( mailService "github.com/authorizerdev/authorizer/server/email" "github.com/authorizerdev/authorizer/server/graph/model" "github.com/authorizerdev/authorizer/server/memorystore" + "github.com/authorizerdev/authorizer/server/memorystore/providers/redis" "github.com/authorizerdev/authorizer/server/refs" "github.com/authorizerdev/authorizer/server/smsproviders" "github.com/authorizerdev/authorizer/server/token" @@ -316,6 +318,41 @@ func LoginResolver(ctx context.Context, params model.LoginInput) (*model.AuthRes expiresIn = 1 } + redisURL := os.Getenv(constants.EnvKeyRedisURL) + if redisURL != "" { + log.Info("Initializing Redis provider") + Provider, err := redis.NewRedisProvider(redisURL) + if err != nil { + log.Debug("Failed to init Redis: ", err) + } + + if user.AppData == nil { + user.AppData = make(map[string]interface{}) + } + + follows, err := Provider.GetUserFollows(user.ID) + if err != nil { + log.Debug("Failed to get follows from Redis: ", err) + } else { + if follows != "" { + user.AppData["follows"] = follows + } else { + log.Debug("Follows data from Redis is empty") + } + } + + author, err := Provider.GetUserProfile(user.ID) + if err != nil { + log.Debug("Failed to get author from Redis: ", err) + } else { + if author != "" { + user.AppData["author"] = author + } else { + log.Debug("Author data from Redis is empty") + } + } + } + res = &model.AuthResponse{ Message: `Logged in successfully`, AccessToken: &authToken.AccessToken.Token, diff --git a/server/resolvers/session.go b/server/resolvers/session.go index e2bde46..0f9f172 100644 --- a/server/resolvers/session.go +++ b/server/resolvers/session.go @@ -4,8 +4,9 @@ import ( "context" "errors" "fmt" - "time" "os" + "os/user" + "time" "github.com/google/uuid" log "github.com/sirupsen/logrus" @@ -92,6 +93,41 @@ func SessionResolver(ctx context.Context, params *model.SessionQueryInput) (*mod expiresIn = 1 } + redisURL := os.Getenv(constants.EnvKeyRedisURL) + if redisURL != "" { + log.Info("Initializing Redis provider") + Provider, err := redis.NewRedisProvider(redisURL) + if err != nil { + log.Debug("Failed to init Redis: ", err) + } + + if user.AppData == nil { + user.AppData = make(map[string]interface{}) + } + + follows, err := Provider.GetUserFollows(user.ID) + if err != nil { + log.Debug("Failed to get follows from Redis: ", err) + } else { + if follows != "" { + user.AppData["follows"] = follows + } else { + log.Debug("Follows data from Redis is empty") + } + } + + author, err := Provider.GetUserProfile(user.ID) + if err != nil { + log.Debug("Failed to get author from Redis: ", err) + } else { + if author != "" { + user.AppData["author"] = author + } else { + log.Debug("Author data from Redis is empty") + } + } + } + res = &model.AuthResponse{ Message: `Session token refreshed`, AccessToken: &authToken.AccessToken.Token, @@ -104,40 +140,6 @@ func SessionResolver(ctx context.Context, params *model.SessionQueryInput) (*mod memorystore.Provider.SetUserSession(sessionKey, constants.TokenTypeSessionToken+"_"+authToken.FingerPrint, authToken.FingerPrintHash, authToken.SessionTokenExpiresAt) memorystore.Provider.SetUserSession(sessionKey, constants.TokenTypeAccessToken+"_"+authToken.FingerPrint, authToken.AccessToken.Token, authToken.AccessToken.ExpiresAt) - redisURL := os.Getenv(constants.EnvKeyRedisURL) - if redisURL != "" { - log.Info("Initializing Redis provider") - Provider, err := redis.NewRedisProvider(redisURL) - if err != nil { - log.Debug("Failed to init Redis: ", err) - } - - if res.User.AppData == nil { - res.User.AppData = make(map[string]interface{}) - } - - follows, err := Provider.GetUserFollows(userID) - if err != nil { - log.Debug("Failed to get follows from Redis: ", err) - } else { - if follows != "" { - res.User.AppData["follows"] = follows - } else { - log.Debug("Follows data from Redis is empty") - } - } - - author, err := Provider.GetUserProfile(userID) - if err != nil { - log.Debug("Failed to get author from Redis: ", err) - } else { - if author != "" { - res.User.AppData["author"] = author - } else { - log.Debug("Author data from Redis is empty") - } - } - } if authToken.RefreshToken != nil { res.RefreshToken = &authToken.RefreshToken.Token