file-system/internal/api/handlers/bucket_handlers.go
向宁 b5df6445e5 refactor: commit all pending file_system changes
- Restructure handlers into file_commands/file_queries/file_handlers
- Add gRPC auth client, JWT middleware, rate limiting, request ID
- Add common utilities: logger, sanitizer, s3_errors
- Add unit tests for config, mediator, auth, request_id, sanitize
- Add proto definitions and generated code
- Remove old web UI pages
- Add .dockerignore and .env.example
2026-05-17 22:20:02 +08:00

51 lines
1.2 KiB
Go

package handlers
import (
"context"
"rag/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
}