autoresearch iter 2: compare error sentinels with errors.Is

Five sites used == against sentinels (redis.Nil, ingest.ErrForbidden,
errs.ErrDatabaseUninitialized). The neighbouring not-found checks already
went through errors.Is helpers, so a wrapped error would silently downgrade
a 403 to a 400 and a 500 to a 400.
This commit is contained in:
ryan
2026-08-29 07:58:59 +08:00
parent edf0c0e934
commit 37ad58699d
3 changed files with 8 additions and 5 deletions
+3 -2
View File
@@ -5,6 +5,7 @@ package pow
import (
"context"
"errors"
"sync"
"time"
@@ -149,7 +150,7 @@ func NewRedisStore(client redis.UniversalClient) *RedisStore {
// Get 从 RedisStore 获取指定 key 的值
func (s *RedisStore) Get(ctx context.Context, key string) (string, bool, error) {
val, err := s.client.Get(ctx, key).Result()
if err == redis.Nil {
if errors.Is(err, redis.Nil) {
return "", false, nil
}
if err != nil {
@@ -176,7 +177,7 @@ func (s *RedisStore) SetNX(ctx context.Context, key, val string, ttl time.Durati
// GetAndDelete wraps Redis GETDEL (available since Redis 6.2).
func (s *RedisStore) GetAndDelete(ctx context.Context, key string) (string, bool, error) {
val, err := s.client.GetDel(ctx, key).Result()
if err == redis.Nil {
if errors.Is(err, redis.Nil) {
return "", false, nil
}
if err != nil {