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 }