54 lines
1.7 KiB
Go
54 lines
1.7 KiB
Go
package services
|
|
|
|
import (
|
|
"time"
|
|
|
|
jcstypes "gitlink.org.cn/cloudream/jcs-pub/common/types"
|
|
)
|
|
|
|
// BucketService 是对存储桶进行操作的服务类
|
|
type BucketService struct {
|
|
*Service
|
|
}
|
|
|
|
// BucketSvc 创建并返回一个BucketService实例
|
|
func (svc *Service) BucketSvc() *BucketService {
|
|
return &BucketService{Service: svc}
|
|
}
|
|
|
|
// GetBucket 根据用户ID和桶ID获取桶信息
|
|
// userID: 用户的唯一标识
|
|
// bucketID: 桶的唯一标识
|
|
// 返回值: 桶的信息和可能发生的错误
|
|
func (svc *BucketService) GetBucket(bucketID jcstypes.BucketID) (jcstypes.Bucket, error) {
|
|
return svc.DB.Bucket().GetByID(svc.DB.DefCtx(), bucketID)
|
|
}
|
|
|
|
func (svc *BucketService) GetBucketByName(bucketName string) (jcstypes.Bucket, error) {
|
|
return svc.DB.Bucket().GetByName(svc.DB.DefCtx(), bucketName)
|
|
}
|
|
|
|
func (svc *BucketService) ListAllBuckets() ([]jcstypes.Bucket, error) {
|
|
return svc.DB.Bucket().GetAll(svc.DB.DefCtx())
|
|
}
|
|
|
|
// GetBucketPackages 获取指定用户和桶的所有包
|
|
// userID: 用户的唯一标识
|
|
// bucketID: 桶的唯一标识
|
|
// 返回值: 桶的所有包列表和可能发生的错误
|
|
func (svc *BucketService) GetBucketPackages(bucketID jcstypes.BucketID) ([]jcstypes.Package, error) {
|
|
return svc.DB.Package().GetBucketPackages(svc.DB.DefCtx(), bucketID)
|
|
}
|
|
|
|
func (svc *BucketService) CreateBucket(bucketName string, createTime time.Time) (jcstypes.Bucket, error) {
|
|
return svc.DB.Bucket().Create(svc.DB.DefCtx(), bucketName, createTime)
|
|
}
|
|
|
|
// DeleteBucket 删除指定的桶
|
|
// userID: 用户的唯一标识
|
|
// bucketID: 桶的唯一标识
|
|
// 返回值: 可能发生的错误
|
|
func (svc *BucketService) DeleteBucket(bucketID jcstypes.BucketID) error {
|
|
return svc.DB.Bucket().DeleteComplete(svc.DB.DefCtx(), bucketID)
|
|
}
|