diff --git a/api/controllers/query.go b/api/controllers/query.go index 589a4f02..c1ea099a 100644 --- a/api/controllers/query.go +++ b/api/controllers/query.go @@ -2,6 +2,7 @@ package controllers import ( "context" + "fmt" serviceinterfaces "queryorchestration/api/serviceInterfaces" "queryorchestration/internal/query" queryprocessor "queryorchestration/internal/queryProcessor" @@ -9,6 +10,8 @@ import ( "github.com/go-playground/validator/v10" "github.com/google/uuid" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" "google.golang.org/protobuf/types/known/emptypb" ) @@ -37,7 +40,7 @@ func (s *QueryController) List(ctx context.Context, req *serviceinterfaces.Query queries, err := s.query.List(ctx, filters) if err != nil { - return nil, err + return nil, status.Error(codes.NotFound, fmt.Sprintf("Unable to list query: %s", err)) } outQueries := make([]*serviceinterfaces.Query, len(queries)) @@ -53,12 +56,12 @@ func (s *QueryController) List(ctx context.Context, req *serviceinterfaces.Query func (s *QueryController) Get(ctx context.Context, req *serviceinterfaces.IdMessage) (*serviceinterfaces.Query, error) { id, err := uuid.Parse(req.GetId()) if err != nil { - return nil, err + return nil, status.Error(codes.InvalidArgument, "Invalid ID") } query, err := s.query.Get(ctx, id) if err != nil { - return nil, err + return nil, status.Error(codes.NotFound, fmt.Sprintf("Unable to get query: %s", err)) } return ParseQuery(query), nil @@ -69,7 +72,7 @@ func (s *QueryController) Create(ctx context.Context, req *serviceinterfaces.Que for index, id := range req.GetRequiredQueries() { parsedID, err := uuid.Parse(id) if err != nil { - return nil, err + return nil, status.Error(codes.InvalidArgument, "Invalid ID") } requiredQueryIDs[index] = parsedID @@ -80,7 +83,7 @@ func (s *QueryController) Create(ctx context.Context, req *serviceinterfaces.Que RequiredQueryIDs: requiredQueryIDs, }) if err != nil { - return nil, err + return nil, status.Error(codes.Internal, fmt.Sprintf("Unable to create query: %s", err)) } return &serviceinterfaces.IdMessage{ @@ -91,14 +94,14 @@ func (s *QueryController) Create(ctx context.Context, req *serviceinterfaces.Que func (s *QueryController) Update(ctx context.Context, req *serviceinterfaces.QueryUpdate) (*emptypb.Empty, error) { id, err := uuid.Parse(req.GetId()) if err != nil { - return nil, err + return nil, status.Error(codes.InvalidArgument, "Invalid ID") } err = s.query.Update(ctx, &queryprocessor.Update{ ID: id, }) if err != nil { - return nil, err + return nil, status.Error(codes.Internal, fmt.Sprintf("Unable to update query: %s", err)) } return &emptypb.Empty{}, nil @@ -107,12 +110,12 @@ func (s *QueryController) Update(ctx context.Context, req *serviceinterfaces.Que func (s *QueryController) Deprecate(ctx context.Context, req *serviceinterfaces.IdMessage) (*emptypb.Empty, error) { id, err := uuid.Parse(req.GetId()) if err != nil { - return nil, err + return nil, status.Error(codes.InvalidArgument, "Invalid ID") } err = s.query.Deprecate(ctx, id) if err != nil { - return nil, err + return nil, status.Error(codes.Internal, fmt.Sprintf("Unable to deprecate query: %s", err)) } return &emptypb.Empty{}, nil @@ -121,11 +124,11 @@ func (s *QueryController) Deprecate(ctx context.Context, req *serviceinterfaces. func (s *QueryController) Test(ctx context.Context, req *serviceinterfaces.QueryTestRequest) (*serviceinterfaces.QueryTestResponse, error) { queryId, err := uuid.Parse(req.GetQueryId()) if err != nil { - return nil, err + return nil, status.Error(codes.InvalidArgument, "Invalid Query ID") } docId, err := uuid.Parse(req.GetDocumentId()) if err != nil { - return nil, err + return nil, status.Error(codes.InvalidArgument, "Invalid Document ID") } value, err := s.query.Test(ctx, query.Test{ @@ -134,7 +137,7 @@ func (s *QueryController) Test(ctx context.Context, req *serviceinterfaces.Query DocumentID: docId, }) if err != nil { - return nil, err + return nil, status.Error(codes.Internal, fmt.Sprintf("Unable to test query: %s", err)) } return &serviceinterfaces.QueryTestResponse{ diff --git a/internal/query/create.go b/internal/query/create.go index 8c8d7308..b5ffab0e 100644 --- a/internal/query/create.go +++ b/internal/query/create.go @@ -62,7 +62,7 @@ func (s *Service) submitCreate(ctx context.Context, entity *queryprocessor.Creat } } - if query.Config != nil { + if query.Config != nil && string(query.Config) != "" { err = qtx.CreateQueryConfig(ctx, repository.CreateQueryConfigParams{ Queryid: dbID, Config: query.Config,