- 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
51 lines
1.2 KiB
Go
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
|
|
}
|