| | package model
|
| |
|
| | import (
|
| | "fmt"
|
| | "time"
|
| |
|
| | "github.com/QuantumNous/new-api/common"
|
| | "github.com/QuantumNous/new-api/constant"
|
| | )
|
| |
|
| | func cacheSetToken(token Token) error {
|
| | key := common.GenerateHMAC(token.Key)
|
| | token.Clean()
|
| | err := common.RedisHSetObj(fmt.Sprintf("token:%s", key), &token, time.Duration(common.RedisKeyCacheSeconds())*time.Second)
|
| | if err != nil {
|
| | return err
|
| | }
|
| | return nil
|
| | }
|
| |
|
| | func cacheDeleteToken(key string) error {
|
| | key = common.GenerateHMAC(key)
|
| | err := common.RedisDelKey(fmt.Sprintf("token:%s", key))
|
| | if err != nil {
|
| | return err
|
| | }
|
| | return nil
|
| | }
|
| |
|
| | func cacheIncrTokenQuota(key string, increment int64) error {
|
| | key = common.GenerateHMAC(key)
|
| | err := common.RedisHIncrBy(fmt.Sprintf("token:%s", key), constant.TokenFiledRemainQuota, increment)
|
| | if err != nil {
|
| | return err
|
| | }
|
| | return nil
|
| | }
|
| |
|
| | func cacheDecrTokenQuota(key string, decrement int64) error {
|
| | return cacheIncrTokenQuota(key, -decrement)
|
| | }
|
| |
|
| | func cacheSetTokenField(key string, field string, value string) error {
|
| | key = common.GenerateHMAC(key)
|
| | err := common.RedisHSetField(fmt.Sprintf("token:%s", key), field, value)
|
| | if err != nil {
|
| | return err
|
| | }
|
| | return nil
|
| | }
|
| |
|
| |
|
| | func cacheGetTokenByKey(key string) (*Token, error) {
|
| | hmacKey := common.GenerateHMAC(key)
|
| | if !common.RedisEnabled {
|
| | return nil, fmt.Errorf("redis is not enabled")
|
| | }
|
| | var token Token
|
| | err := common.RedisHGetObj(fmt.Sprintf("token:%s", hmacKey), &token)
|
| | if err != nil {
|
| | return nil, err
|
| | }
|
| | token.Key = key
|
| | return &token, nil
|
| | }
|
| |
|