MCPcopy
hub / github.com/QuantumNous/new-api / GetUserCache

Function GetUserCache

model/user_cache.go:80–119  ·  view source on GitHub ↗

GetUserCache gets complete user cache from hash

(userId int)

Source from the content-addressed store, hash-verified

78
79// GetUserCache gets complete user cache from hash
80func GetUserCache(userId int) (userCache *UserBase, err error) {
81 var user *User
82 var fromDB bool
83 defer func() {
84 // Update Redis cache asynchronously on successful DB read
85 if shouldUpdateRedis(fromDB, err) && user != nil {
86 gopool.Go(func() {
87 if err := updateUserCache(*user); err != nil {
88 common.SysLog("failed to update user status cache: " + err.Error())
89 }
90 })
91 }
92 }()
93
94 // Try getting from Redis first
95 userCache, err = cacheGetUserBase(userId)
96 if err == nil {
97 return userCache, nil
98 }
99
100 // If Redis fails, get from DB
101 fromDB = true
102 user, err = GetUserById(userId, false)
103 if err != nil {
104 return nil, err // Return nil and error if DB lookup fails
105 }
106
107 // Create cache object from user data
108 userCache = &UserBase{
109 Id: user.Id,
110 Group: user.Group,
111 Quota: user.Quota,
112 Status: user.Status,
113 Username: user.Username,
114 Setting: user.Setting,
115 Email: user.Email,
116 }
117
118 return userCache, nil
119}
120
121func cacheGetUserBase(userId int) (*UserBase, error) {
122 if !common.RedisEnabled {

Callers 13

TokenAuthReadOnlyFunction · 0.92
TokenAuthFunction · 0.92
testChannelFunction · 0.92
PlaygroundFunction · 0.92
GetPricingFunction · 0.92
tasksToDtoFunction · 0.92
GetUserModelsFunction · 0.92
getUserGroupCacheFunction · 0.85
getUserQuotaCacheFunction · 0.85
getUserStatusCacheFunction · 0.85
getUserNameCacheFunction · 0.85
getUserSettingCacheFunction · 0.85

Calls 6

SysLogFunction · 0.92
shouldUpdateRedisFunction · 0.85
updateUserCacheFunction · 0.85
cacheGetUserBaseFunction · 0.85
GetUserByIdFunction · 0.85
ErrorMethod · 0.45

Tested by

no test coverage detected