app-data-patch
Some checks failed
deploy / deploy (push) Failing after 5s

This commit is contained in:
Untone 2024-02-22 00:29:46 +03:00
parent 2487077adc
commit 871c65b9dd
2 changed files with 56 additions and 0 deletions

View File

@ -0,0 +1,27 @@
package redis
import (
"fmt"
)
// GetUserProfile возвращает профиль пользователя в виде сырого JSON
func (c *provider) GetUserProfile(userId string) (string, error) {
key := fmt.Sprintf("user:%s:profile", userId)
profileJSON, err := c.store.Get(c.ctx, key).Result()
if err != nil {
return "", err
}
return profileJSON, nil
}
// GetUserFollows возвращает список подписок пользователя в виде сырого JSON
func (c *provider) GetUserFollows(userId string) (string, error) {
key := fmt.Sprintf("user:%s:follows", userId)
followsJSON, err := c.store.Get(c.ctx, key).Result()
if err != nil {
return "", err
}
return followsJSON, nil
}

View File

@ -5,6 +5,7 @@ import (
"errors" "errors"
"fmt" "fmt"
"time" "time"
"os"
"github.com/google/uuid" "github.com/google/uuid"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
@ -14,6 +15,7 @@ import (
"github.com/authorizerdev/authorizer/server/db" "github.com/authorizerdev/authorizer/server/db"
"github.com/authorizerdev/authorizer/server/graph/model" "github.com/authorizerdev/authorizer/server/graph/model"
"github.com/authorizerdev/authorizer/server/memorystore" "github.com/authorizerdev/authorizer/server/memorystore"
"github.com/authorizerdev/authorizer/server/memorystore/providers/redis"
"github.com/authorizerdev/authorizer/server/token" "github.com/authorizerdev/authorizer/server/token"
"github.com/authorizerdev/authorizer/server/utils" "github.com/authorizerdev/authorizer/server/utils"
) )
@ -102,6 +104,33 @@ 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.TokenTypeSessionToken+"_"+authToken.FingerPrint, authToken.FingerPrintHash, authToken.SessionTokenExpiresAt)
memorystore.Provider.SetUserSession(sessionKey, constants.TokenTypeAccessToken+"_"+authToken.FingerPrint, authToken.AccessToken.Token, authToken.AccessToken.ExpiresAt) 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, _ := 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 {
res.User.AppData["follows"] = follows
}
author, err := Provider.GetUserProfile(userID)
if err != nil {
log.Debug("Failed to get author from Redis: ", err)
} else {
res.User.AppData["author"] = author
}
}
if authToken.RefreshToken != nil { if authToken.RefreshToken != nil {
res.RefreshToken = &authToken.RefreshToken.Token res.RefreshToken = &authToken.RefreshToken.Token
memorystore.Provider.SetUserSession(sessionKey, constants.TokenTypeRefreshToken+"_"+authToken.FingerPrint, authToken.RefreshToken.Token, authToken.RefreshToken.ExpiresAt) memorystore.Provider.SetUserSession(sessionKey, constants.TokenTypeRefreshToken+"_"+authToken.FingerPrint, authToken.RefreshToken.Token, authToken.RefreshToken.ExpiresAt)