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) }