From 31cee1fd7ae7d7455e2d14ef4edc6fd8f72905ec Mon Sep 17 00:00:00 2001 From: Sydonian <794346190@qq.com> Date: Tue, 1 Jul 2025 16:14:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8E=A5=E5=8F=A3=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E7=9A=84=E9=94=99=E8=AF=AF=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/internal/http/v1/bucket.go | 11 +++++++++++ client/internal/http/v1/package.go | 15 +++++++++++++-- client/internal/services/package.go | 8 -------- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/client/internal/http/v1/bucket.go b/client/internal/http/v1/bucket.go index 56d7431..fcf145b 100644 --- a/client/internal/http/v1/bucket.go +++ b/client/internal/http/v1/bucket.go @@ -10,6 +10,7 @@ import ( "gitlink.org.cn/cloudream/jcs-pub/client/internal/http/types" cliapi "gitlink.org.cn/cloudream/jcs-pub/client/sdk/api/v1" "gitlink.org.cn/cloudream/jcs-pub/common/ecode" + "gorm.io/gorm" ) type BucketService struct { @@ -35,6 +36,11 @@ func (s *BucketService) Get(ctx *gin.Context) { bucket, err := s.svc.DB.Bucket().GetByID(s.svc.DB.DefCtx(), req.BucketID) if err != nil { log.Warnf("getting bucket by name: %s", err.Error()) + if err == gorm.ErrRecordNotFound { + ctx.JSON(http.StatusOK, types.Failed(ecode.DataNotFound, "bucket not found")) + return + } + ctx.JSON(http.StatusOK, types.FailedError(err)) return } @@ -57,6 +63,11 @@ func (s *BucketService) GetByName(ctx *gin.Context) { bucket, err := s.svc.BucketSvc().GetBucketByName(req.Name) if err != nil { log.Warnf("getting bucket by name: %s", err.Error()) + if err == gorm.ErrRecordNotFound { + ctx.JSON(http.StatusOK, types.Failed(ecode.DataNotFound, "bucket not found")) + return + } + ctx.JSON(http.StatusOK, types.FailedError(err)) return } diff --git a/client/internal/http/v1/package.go b/client/internal/http/v1/package.go index f0529b1..9a986bf 100644 --- a/client/internal/http/v1/package.go +++ b/client/internal/http/v1/package.go @@ -19,6 +19,7 @@ import ( clitypes "gitlink.org.cn/cloudream/jcs-pub/client/types" "gitlink.org.cn/cloudream/jcs-pub/common/ecode" "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/iterator" + "gorm.io/gorm" ) // PackageService 包服务,负责处理包相关的HTTP请求。 @@ -43,9 +44,14 @@ func (s *PackageService) Get(ctx *gin.Context) { return } - pkg, err := s.svc.PackageSvc().Get(req.PackageID) + pkg, err := s.svc.DB.Package().GetByID(s.svc.DB.DefCtx(), req.PackageID) if err != nil { log.Warnf("getting package: %s", err.Error()) + if err == gorm.ErrRecordNotFound { + ctx.JSON(http.StatusOK, types.Failed(ecode.DataNotFound, "package not found")) + return + } + ctx.JSON(http.StatusOK, types.FailedError(err)) return } @@ -63,9 +69,14 @@ func (s *PackageService) GetByFullName(ctx *gin.Context) { return } - pkg, err := s.svc.PackageSvc().GetByFullName(req.BucketName, req.PackageName) + pkg, err := s.svc.DB.Package().GetByFullName(s.svc.DB.DefCtx(), req.BucketName, req.PackageName) if err != nil { log.Warnf("getting package by name: %s", err.Error()) + if err == gorm.ErrRecordNotFound { + ctx.JSON(http.StatusOK, types.Failed(ecode.DataNotFound, "package not found")) + return + } + ctx.JSON(http.StatusOK, types.FailedError(err)) return } diff --git a/client/internal/services/package.go b/client/internal/services/package.go index d6cf150..37ae0b5 100644 --- a/client/internal/services/package.go +++ b/client/internal/services/package.go @@ -21,14 +21,6 @@ func (svc *Service) PackageSvc() *PackageService { return &PackageService{Service: svc} } -func (svc *PackageService) Get(packageID types.PackageID) (types.Package, error) { - return svc.DB.Package().GetByID(svc.DB.DefCtx(), packageID) -} - -func (svc *PackageService) GetByFullName(bucketName string, packageName string) (types.Package, error) { - return svc.DB.Package().GetByFullName(svc.DB.DefCtx(), bucketName, packageName) -} - func (svc *PackageService) GetBucketPackages(bucketID types.BucketID) ([]types.Package, error) { return svc.DB.Package().GetBucketPackages(svc.DB.DefCtx(), bucketID) }