Defines repo interfaces in biz (dependency inversion) implemented by data layer. Removes old domain layer replaced by data layer in previous commit.
37 lines
866 B
Go
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)
|
|
}
|