向宁 4927de90cc feat: add biz layer with usecases for file, bucket, folder, share
Defines repo interfaces in biz (dependency inversion) implemented by data layer.
Removes old domain layer replaced by data layer in previous commit.
2026-05-25 13:00:48 +08:00

37 lines
866 B
Go

package biz
import (
"context"
"github.com/go-kratos/kratos/v2/log"
)
// BucketUsecase wraps FileRepo bucket operations.
type BucketUsecase struct {
repo FileRepo
log *log.Helper
}
// NewBucketUsecase creates a new BucketUsecase.
func NewBucketUsecase(repo FileRepo, logger log.Logger) *BucketUsecase {
return &BucketUsecase{
repo: repo,
log: log.NewHelper(logger),
}
}
// ListBuckets returns all bucket names.
func (uc *BucketUsecase) ListBuckets(ctx context.Context) ([]string, error) {
return uc.repo.ListBuckets(ctx)
}
// CreateBucket creates a new S3 bucket.
func (uc *BucketUsecase) CreateBucket(ctx context.Context, name string) error {
return uc.repo.CreateBucket(ctx, name)
}
// DeleteBucket deletes an S3 bucket.
func (uc *BucketUsecase) DeleteBucket(ctx context.Context, name string) error {
return uc.repo.DeleteBucket(ctx, name)
}