package handlers import ( "context" "file-system/internal/domain/repository" ) // InitMultipartHandler type InitMultipartHandler struct { Repo repository.FileRepository } func NewInitMultipartHandler(repo repository.FileRepository) *InitMultipartHandler { return &InitMultipartHandler{Repo: repo} } func (h *InitMultipartHandler) Handle(ctx context.Context, cmd InitMultipartCommand) (string, error) { return h.Repo.CreateMultipartUpload(ctx, cmd.BucketName, cmd.ObjectKey) } // UploadPartHandler type UploadPartHandler struct { Repo repository.FileRepository } func NewUploadPartHandler(repo repository.FileRepository) *UploadPartHandler { return &UploadPartHandler{Repo: repo} } func (h *UploadPartHandler) Handle(ctx context.Context, cmd UploadPartCommand) (string, error) { return h.Repo.UploadPart(ctx, cmd.BucketName, cmd.ObjectKey, cmd.UploadId, cmd.PartNumber, cmd.Data) } // CompleteMultipartHandler type CompleteMultipartHandler struct { Repo repository.FileRepository } func NewCompleteMultipartHandler(repo repository.FileRepository) *CompleteMultipartHandler { return &CompleteMultipartHandler{Repo: repo} } func (h *CompleteMultipartHandler) Handle(ctx context.Context, cmd CompleteMultipartCommand) (string, error) { return h.Repo.CompleteMultipartUpload(ctx, cmd.BucketName, cmd.ObjectKey, cmd.UploadId, cmd.Parts) }