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
+2 -1
View File
@@ -10,6 +10,7 @@ import (
"Wavelet/plugins/domain/admin/errs"
"Wavelet/plugins/domain/admin/model"
"Wavelet/plugins/domain/admin/service"
"errors"
"fmt"
"net/http"
"strings"
@@ -109,7 +110,7 @@ func ExecuteSQL(c *gin.Context) {
resp, err := service.ExecuteCustomSQL(c.Request.Context(), trimmedSQL)
if err != nil {
if err == errs.ErrDatabaseUninitialized {
if errors.Is(err, errs.ErrDatabaseUninitialized) {
response.AbortInternal(c, err.Error())
return
}
+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 {
@@ -11,6 +11,7 @@ import (
"Wavelet/plugins/domain/upload/models"
"Wavelet/plugins/domain/upload/repository"
"Wavelet/plugins/domain/upload/shared"
"errors"
"net/http"
"strconv"
@@ -233,7 +234,7 @@ func DeleteMyFile(c *gin.Context) {
response.AbortNotFound(c, shared.ErrFileRecordNotFound)
return
}
if err == ingest.ErrForbidden {
if errors.Is(err, ingest.ErrForbidden) {
response.AbortForbidden(c, shared.ErrOperationForbidden)
return
}
@@ -287,7 +288,7 @@ func UpdateMyFile(c *gin.Context) {
response.AbortNotFound(c, shared.ErrFileRecordNotFound)
return
}
if err == ingest.ErrForbidden {
if errors.Is(err, ingest.ErrForbidden) {
response.AbortForbidden(c, shared.ErrOperationForbidden)
return
}