31 lines
1001 B
Go
31 lines
1001 B
Go
package grpc
|
||
|
||
import (
|
||
pb "git.lendry.ru/lendry-erp/contracts.git/gen/go/media"
|
||
|
||
"lendry-erp/media/internal/application/usecases"
|
||
handler "lendry-erp/media/internal/interfaces/grpc"
|
||
|
||
"google.golang.org/grpc"
|
||
)
|
||
|
||
// NewServer создает и настраивает gRPC сервер с нужными перехватчиками и лимитами
|
||
func NewServer(uploadUC *usecases.UploadUseCase, presignUC *usecases.PresignUseCase) *grpc.Server {
|
||
|
||
server := grpc.NewServer(
|
||
grpc.ChainUnaryInterceptor(
|
||
RequestLoggerInterceptor,
|
||
TraceIDInterceptor,
|
||
),
|
||
// Увеличиваем лимит размера пакета до 50 МБ для больших файлов
|
||
grpc.MaxRecvMsgSize(50*1024*1024),
|
||
)
|
||
|
||
// Создаем обработчик
|
||
h := handler.NewMediaHandler(uploadUC, presignUC)
|
||
|
||
// Регистрируем наш сервис (здесь используется функция из media_grpc.pb.go)
|
||
pb.RegisterMediaServiceServer(server, h)
|
||
|
||
return server
|
||
} |