mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 00:20:25 +08:00 
			
		
		
		
	Remove legacy unknwon/com package (#19298)
				
					
				
			Follows: #19284 * The `CopyDir` is only used inside test code * Rewrite `ToSnakeCase` with more test cases * The `RedisCacher` only put strings into cache, here we use internal `toStr` to replace the legacy `ToStr` * The `UniqueQueue` can use string as ID directly, no need to call `ToStr`
This commit is contained in:
		
							
								
								
									
										33
									
								
								modules/cache/cache_redis.go
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										33
									
								
								modules/cache/cache_redis.go
									
									
									
									
										vendored
									
									
								
							@@ -6,11 +6,11 @@ package cache
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"strconv"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"code.gitea.io/gitea/modules/graceful"
 | 
			
		||||
	"code.gitea.io/gitea/modules/nosql"
 | 
			
		||||
	"code.gitea.io/gitea/modules/util"
 | 
			
		||||
 | 
			
		||||
	"gitea.com/go-chi/cache"
 | 
			
		||||
	"github.com/go-redis/redis/v8"
 | 
			
		||||
@@ -24,20 +24,37 @@ type RedisCacher struct {
 | 
			
		||||
	occupyMode bool
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Put puts value into cache with key and expire time.
 | 
			
		||||
// toStr convert string/int/int64 interface to string. it's only used by the RedisCacher.Put internally
 | 
			
		||||
func toStr(v interface{}) string {
 | 
			
		||||
	if v == nil {
 | 
			
		||||
		return ""
 | 
			
		||||
	}
 | 
			
		||||
	switch v := v.(type) {
 | 
			
		||||
	case string:
 | 
			
		||||
		return v
 | 
			
		||||
	case []byte:
 | 
			
		||||
		return string(v)
 | 
			
		||||
	case int:
 | 
			
		||||
		return strconv.FormatInt(int64(v), 10)
 | 
			
		||||
	case int64:
 | 
			
		||||
		return strconv.FormatInt(v, 10)
 | 
			
		||||
	default:
 | 
			
		||||
		return fmt.Sprint(v) // as what the old com.ToStr does in most cases
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Put puts value (string type) into cache with key and expire time.
 | 
			
		||||
// If expired is 0, it lives forever.
 | 
			
		||||
func (c *RedisCacher) Put(key string, val interface{}, expire int64) error {
 | 
			
		||||
	// this function is not well-designed, it only puts string values into cache
 | 
			
		||||
	key = c.prefix + key
 | 
			
		||||
	if expire == 0 {
 | 
			
		||||
		if err := c.c.Set(graceful.GetManager().HammerContext(), key, util.ToStr(val), 0).Err(); err != nil {
 | 
			
		||||
		if err := c.c.Set(graceful.GetManager().HammerContext(), key, toStr(val), 0).Err(); err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
		dur, err := time.ParseDuration(util.ToStr(expire) + "s")
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
		if err = c.c.Set(graceful.GetManager().HammerContext(), key, util.ToStr(val), dur).Err(); err != nil {
 | 
			
		||||
		dur := time.Duration(expire) * time.Second
 | 
			
		||||
		if err := c.c.Set(graceful.GetManager().HammerContext(), key, toStr(val), dur).Err(); err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user