- 新增 DeleteBucketHandler 处理存储桶删除请求 - 添加 DELETE /buckets API 端点 - 在前端界面添加删除存储桶按钮功能 - 添加存储桶删除请求验证器 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
51 lines
1.2 KiB
Go
51 lines
1.2 KiB
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)
|
|
}
|
|
|
|
type DeleteBucketHandler struct {
|
|
Repo repository.FileRepository
|
|
}
|
|
|
|
func NewDeleteBucketHandler(repo repository.FileRepository) *DeleteBucketHandler {
|
|
return &DeleteBucketHandler{Repo: repo}
|
|
}
|
|
|
|
func (h *DeleteBucketHandler) Handle(ctx context.Context, cmd DeleteBucketCommand) (string, error) {
|
|
err := h.Repo.DeleteBucket(ctx, cmd.BucketName)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return "Bucket deleted successfully", nil
|
|
}
|