add media service

This commit is contained in:
Дмитрий
2026-05-08 17:36:48 +03:00
parent 1a7251976d
commit 72c57f0de3
16 changed files with 757 additions and 291 deletions

View File

@@ -0,0 +1,56 @@
package grpc
import (
"context"
// Укажите правильный путь до сгенерированного go кода из ваших контрактов
"lendry-erp/media/internal/application/dto"
"lendry-erp/media/internal/application/usecases"
pb "git.lendry.ru/lendry-erp/contracts.git/gen/go/media"
)
type MediaHandler struct {
pb.UnimplementedMediaServiceServer
uploadUC *usecases.UploadUseCase
presignUC *usecases.PresignUseCase
}
func NewMediaHandler(u *usecases.UploadUseCase, p *usecases.PresignUseCase) *MediaHandler {
return &MediaHandler{
uploadUC: u,
presignUC: p,
}
}
func (h *MediaHandler) Upload(ctx context.Context, req *pb.UploadRequest) (*pb.UploadResponse, error) {
res, err := h.uploadUC.Execute(ctx, dto.UploadMediaRequest{
OriginalName: req.FileName,
Mode: req.Mode,
Data: req.Data,
})
if err != nil {
return nil, err
}
return &pb.UploadResponse{
FileName: res.FileName,
Size: res.Size,
}, nil
}
func (h *MediaHandler) GetPresignedUrl(ctx context.Context, req *pb.GetPresignedUrlRequest) (*pb.GetPresignedUrlResponse, error) {
res, err := h.presignUC.Execute(ctx, dto.GetUrlRequest{
FileName: req.FileName,
IsPublic: req.IsPublic,
})
if err != nil {
return nil, err
}
return &pb.GetPresignedUrlResponse{
Url: res.URL,
}, nil
}