diff --git a/internal/mock/grpc_server.go b/internal/mock/grpc_server.go index 3863406223e394f30b8711a4169007ef4e701b83..f38b1e07471ff02e033d5c889b9959c9f7765966 100644 --- a/internal/mock/grpc_server.go +++ b/internal/mock/grpc_server.go @@ -43,15 +43,15 @@ type registrationServer struct { func (s *registrationServer) Register(ctx context.Context, in *pb.GrpcFachstelleRegistrationRequest) (*pb.GrpcFachstelleRegistrationResponse, error) { if in.Fachstelle == nil { - return nil, status.Error(codes.InvalidArgument, "Fachstelle is missing") + return nil, status.Error(codes.InvalidArgument, "fachstelle is missing") } if in.Fachstelle.MukId == "conflictMukId" { - return nil, status.Error(codes.AlreadyExists, "Conflict MukId") + return nil, status.Error(codes.AlreadyExists, "conflict MukId") } else if in.Fachstelle.MukId == "unavailableMukId" { - return nil, status.Error(codes.Unavailable, "Unavailable MukId") + return nil, status.Error(codes.Unavailable, "unavailable MukId") } else if in.Fachstelle.MukId == "erroneousMukId" { - return nil, status.Error(codes.Internal, "Erroneous MukId") + return nil, status.Error(codes.Internal, "erroneous MukId") } return &pb.GrpcFachstelleRegistrationResponse{}, nil @@ -63,11 +63,11 @@ type collaborationServer struct { func (s *collaborationServer) FindVorgang(ctx context.Context, in *pb.GrpcFindVorgangRequest) (*pb.GrpcFindVorgangResponse, error) { if in.VorgangId == "" { - return nil, status.Error(codes.InvalidArgument, "VorgangId is missing") + return nil, status.Error(codes.InvalidArgument, "vorgangId is missing") } if in.SamlToken == "" { - return nil, status.Error(codes.InvalidArgument, "SamlToken is missing") + return nil, status.Error(codes.InvalidArgument, "samlToken is missing") } return &pb.GrpcFindVorgangResponse{Vorgang: &pb.GrpcVorgang{Id: "testVorgangId"}}, nil diff --git a/internal/server/grpc_router.go b/internal/server/grpc_router.go index 3b9006e9410885f0229c6f0f9a37161a0c5734c3..a0437cd9c32040fdeed1005bd534d2578e88c7e8 100644 --- a/internal/server/grpc_router.go +++ b/internal/server/grpc_router.go @@ -49,16 +49,20 @@ type collaborationRouter struct { func (s *collaborationRouter) FindVorgang(ctx context.Context, in *pb.GrpcFindVorgangRequest) (*pb.GrpcFindVorgangResponse, error) { if in.VorgangId == "" { - return nil, status.Error(codes.InvalidArgument, "VorgangId is missing") + return nil, status.Error(codes.InvalidArgument, "vorgangId is missing") } collaborationInfo, decodeErr := DecodeCollaborationInfo(in.VorgangId) if decodeErr != nil { - return nil, status.Error(codes.InvalidArgument, "VorgangId has invalid format, expected base64 encoded 'collaborationServerAddress/vorgangId'") + return nil, status.Error(codes.InvalidArgument, decodeErr.Error()) } - client, connCleanUp := createCollaborationClient(collaborationInfo.CollaborationServerAddress) + client, connCleanUp, err := createCollaborationClient(collaborationInfo.CollaborationServerAddress) + if err != nil { + return nil, status.Error(codes.Internal, err.Error()) + } defer connCleanUp() + updatedRequest := &pb.GrpcFindVorgangRequest{VorgangId: collaborationInfo.Attribute, SamlToken: in.SamlToken} return client.FindVorgang(context.Background(), updatedRequest) @@ -86,11 +90,13 @@ func DecodeCollaborationInfo(encodedCollaborationInfo string) (*CollaborationInf }, nil } -func createCollaborationClient(collaborationServerAddress string) (pb.CollaborationServiceClient, func()) { +func createCollaborationClient(collaborationServerAddress string) (pb.CollaborationServiceClient, func(), error) { target := GetCollaborationServerUrl(collaborationServerAddress, conf) conn, err := grpc.NewClient(target, grpc.WithTransportCredentials(insecure.NewCredentials())) if err != nil { - logger.Fatal("collaboration router failed to route: %v", err) + logger.Error("collaboration router failed to route: %v", err) + + return nil, nil, errors.New("collaboration router failed to route") } client := pb.NewCollaborationServiceClient(conn) @@ -98,7 +104,7 @@ func createCollaborationClient(collaborationServerAddress string) (pb.Collaborat conn.Close() } - return client, connCleanUp + return client, connCleanUp, nil } func GetCollaborationServerUrl(collaborationServerAddress string, c config.Config) string { diff --git a/internal/server/grpc_router_test.go b/internal/server/grpc_router_test.go index 1875306130838b6233f09e96f75a7137d630c87a..4401e582040ffe0c833cd1cd96ad73dd73426997 100644 --- a/internal/server/grpc_router_test.go +++ b/internal/server/grpc_router_test.go @@ -82,7 +82,7 @@ func TestStartCollaborationRouter(t *testing.T) { resp, err := client.FindVorgang(context.Background(), &pb.GrpcFindVorgangRequest{VorgangId: "bG9jYWxob3N0L3Rlc3RWb3JnYW5nSWQ="}) assert.Error(t, err) - assert.Contains(t, err.Error(), "SamlToken is missing") + assert.Contains(t, err.Error(), "samlToken is missing") assert.Nil(t, resp) }) @@ -93,7 +93,7 @@ func TestStartCollaborationRouter(t *testing.T) { resp, err := client.FindVorgang(context.Background(), &pb.GrpcFindVorgangRequest{}) assert.Error(t, err) - assert.Contains(t, err.Error(), "VorgangId is missing") + assert.Contains(t, err.Error(), "vorgangId is missing") assert.Nil(t, resp) }) } @@ -106,7 +106,7 @@ func TestDecodeCollaborationInfo(t *testing.T) { assert.NotNil(t, result) }) - t.Run("should have collaboration server dddress", func(t *testing.T) { + t.Run("should have collaboration server address", func(t *testing.T) { result, err := DecodeCollaborationInfo("bG9jYWxob3N0L3Rlc3RWb3JnYW5nSWQ=") assert.NoError(t, err)