add media service
This commit is contained in:
56
internal/interfaces/grpc/media_handler.go
Normal file
56
internal/interfaces/grpc/media_handler.go
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user