diff --git a/internal/mock/grpc_server.go b/internal/mock/grpc_server.go index d501abf9b357610d7998816bfd0ac5dce8b10a5d..66f6fd73b5e8fef4ba4fb68bc48ee9dd6b9096f7 100644 --- a/internal/mock/grpc_server.go +++ b/internal/mock/grpc_server.go @@ -95,7 +95,11 @@ func (s *binaryFileServer) FindBinaryFilesMetaData(_ context.Context, _ *pb.Grpc return &pb.GrpcFindFilesResponse{}, nil } -func (s *binaryFileServer) GetBinaryFileContent(_ *pb.GrpcGetBinaryFileDataRequest, stream pb.BinaryFileService_GetBinaryFileContentServer) error { +func (s *binaryFileServer) GetBinaryFileContent(in *pb.GrpcGetBinaryFileDataRequest, stream pb.BinaryFileService_GetBinaryFileContentServer) error { + if in.FileId == "" { + return status.Error(codes.InvalidArgument, "FileId is missing") + } + fp := defaultFilePath if testing.Testing() { fp = testFilePath @@ -117,9 +121,7 @@ func (s *binaryFileServer) GetBinaryFileContent(_ *pb.GrpcGetBinaryFileDataReque return err } - chunk := &pb.GrpcGetBinaryFileDataResponse{ - FileContent: buffer[:bytesRead], - } + chunk := &pb.GrpcGetBinaryFileDataResponse{FileContent: buffer[:bytesRead]} if err := stream.Send(chunk); err != nil { return err } diff --git a/internal/server/grpc_router.go b/internal/server/grpc_router.go index ba506dae05d69bd15d4035adff243222ca4bcef8..b34e99683913f3ec106188865044ccb2e5610240 100644 --- a/internal/server/grpc_router.go +++ b/internal/server/grpc_router.go @@ -195,7 +195,7 @@ func StartGrpcRouter() *grpc.Server { } logger.Info("gRPC router listening on port %d", conf.Grpc.Router.Port) - if err := s.Serve(lis); err != nil { + if err = s.Serve(lis); err != nil { logger.Fatal("gRPC router failed to serve: %v", err) } diff --git a/internal/server/grpc_router_test.go b/internal/server/grpc_router_test.go index 0f81f57990bc82fe7c69d694d6b28b0ff2796ba1..15e55208b8f2453452b766aaa308dc68061480e9 100644 --- a/internal/server/grpc_router_test.go +++ b/internal/server/grpc_router_test.go @@ -69,7 +69,7 @@ func TestStartGrpcRouter(t *testing.T) { client, cleanUp := setUpGrpcRouterEnv() defer cleanUp() - md := metadata.New(map[string]string{"x-grpc-address": "localhost"}) + md := metadata.New(map[string]string{GrpcAddressMetadata: "localhost"}) ctx := metadata.NewOutgoingContext(context.Background(), md) resp, err := client.FindRueckfragen(ctx, &pb.GrpcFindRueckfragenRequest{PostfachId: "testPostfachId"}) @@ -81,7 +81,7 @@ func TestStartGrpcRouter(t *testing.T) { client, cleanUp := setUpGrpcRouterEnv() defer cleanUp() - md := metadata.New(map[string]string{"x-grpc-address": "localhost"}) + md := metadata.New(map[string]string{GrpcAddressMetadata: "localhost"}) ctx := metadata.NewOutgoingContext(context.Background(), md) resp, err := client.FindRueckfragen(ctx, &pb.GrpcFindRueckfragenRequest{}) diff --git a/internal/server/handler.go b/internal/server/handler.go index 88a294cdf54c903ed3df4276567772e69d9ce70c..f0e0e05bba211a950345a96fe551b2872fb48ae3 100644 --- a/internal/server/handler.go +++ b/internal/server/handler.go @@ -41,6 +41,7 @@ import ( ) const ( + fileIdParam = "fileId" fileFormKey = "file" vorgangIdFormKey = "vorgangId" contentTypeHeaderKey = "Content-Type" @@ -195,7 +196,7 @@ func sendFileChunks(stream pb.BinaryFileService_UploadBinaryFileAsStreamClient, } func RegisterGetFileEndpoint(mux *runtime.ServeMux) { - err := mux.HandlePath("GET", "/api/v1/file/content/{fileId}", getFileHandler) + err := mux.HandlePath("GET", "/api/v1/file/content/{"+fileIdParam+"}", getFileHandler) if err != nil { logger.Fatal("failed to register get file endpoint: %v", err) @@ -203,7 +204,7 @@ func RegisterGetFileEndpoint(mux *runtime.ServeMux) { } func getFileHandler(w http.ResponseWriter, r *http.Request, vars map[string]string) { - fileBuffer, err := fetchFileFromGrpc(r.Context(), vars["fileId"], r.Header.Get(GrpcAddressHeader)) + fileBuffer, err := fetchFileFromGrpc(r.Context(), vars[fileIdParam], r.Header.Get(GrpcAddressHeader)) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return @@ -215,7 +216,7 @@ func getFileHandler(w http.ResponseWriter, r *http.Request, vars map[string]stri } } -func fetchFileFromGrpc(ctx context.Context, fileId, grpcAddress string) (*bytes.Buffer, error) { +func fetchFileFromGrpc(ctx context.Context, fileId string, grpcAddress string) (*bytes.Buffer, error) { var fileBuffer bytes.Buffer target := GetGrpcServerUrl(grpcAddress, conf) diff --git a/internal/server/handler_test.go b/internal/server/handler_test.go index c2e6d3578e4ed10402ae7d18012b6db642cf20d0..8aa40f2fe72fc6a1a22db92dd3f43d6bfdd41f43 100644 --- a/internal/server/handler_test.go +++ b/internal/server/handler_test.go @@ -129,7 +129,6 @@ func TestRegisterBinaryFileEndpoints(t *testing.T) { func TestRegisterFileUploadEndpoint(t *testing.T) { mock.SetUpGrpcServer() - SetUpGrpcRouter() SetUpHttpGateway() var requestBody bytes.Buffer @@ -161,7 +160,6 @@ func TestRegisterFileUploadEndpoint(t *testing.T) { func TestRegisterGetFileEndpoint(t *testing.T) { mock.SetUpGrpcServer() - SetUpGrpcRouter() SetUpHttpGateway() jsonData := []byte(``)