35 lines
839 B
Go
35 lines
839 B
Go
package handlers
|
|
|
|
import (
|
|
"context"
|
|
"file-system/internal/domain/repository"
|
|
)
|
|
|
|
type CreateBucketHandler struct {
|
|
Repo repository.FileRepository
|
|
}
|
|
|
|
func NewCreateBucketHandler(repo repository.FileRepository) *CreateBucketHandler {
|
|
return &CreateBucketHandler{Repo: repo}
|
|
}
|
|
|
|
func (h *CreateBucketHandler) Handle(ctx context.Context, cmd CreateBucketCommand) (string, error) {
|
|
err := h.Repo.CreateBucket(ctx, cmd.BucketName)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return "Bucket created successfully", nil
|
|
}
|
|
|
|
type ListBucketsHandler struct {
|
|
Repo repository.FileRepository
|
|
}
|
|
|
|
func NewListBucketsHandler(repo repository.FileRepository) *ListBucketsHandler {
|
|
return &ListBucketsHandler{Repo: repo}
|
|
}
|
|
|
|
func (h *ListBucketsHandler) Handle(ctx context.Context, query ListBucketsQuery) ([]string, error) {
|
|
return h.Repo.ListBuckets(ctx)
|
|
}
|