From 3034e8437e1e9e9627292121f639b86535bf3f4a Mon Sep 17 00:00:00 2001 From: Sebastian Stehle Date: Mon, 18 Sep 2017 19:33:29 +0200 Subject: [PATCH] Better exceptions for OData errors. --- .../Contents/Visitors/FilterBuilder.cs | 22 +++++++++++++++++-- .../pages/schema/schema-page.component.html | 2 +- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/Squidex.Domain.Apps.Read.MongoDb/Contents/Visitors/FilterBuilder.cs b/src/Squidex.Domain.Apps.Read.MongoDb/Contents/Visitors/FilterBuilder.cs index bb8fc7ef3..42afd4681 100644 --- a/src/Squidex.Domain.Apps.Read.MongoDb/Contents/Visitors/FilterBuilder.cs +++ b/src/Squidex.Domain.Apps.Read.MongoDb/Contents/Visitors/FilterBuilder.cs @@ -6,9 +6,11 @@ // All rights reserved. // ========================================================================== +using Microsoft.OData; using Microsoft.OData.UriParser; using MongoDB.Driver; using Squidex.Domain.Apps.Core.Schemas; +using Squidex.Infrastructure; namespace Squidex.Domain.Apps.Read.MongoDb.Contents.Visitors { @@ -18,14 +20,30 @@ namespace Squidex.Domain.Apps.Read.MongoDb.Contents.Visitors public static FilterDefinition Build(ODataUriParser query, Schema schema) { - var search = query.ParseSearch(); + SearchClause search; + try + { + search = query.ParseSearch(); + } + catch (ODataException ex) + { + throw new ValidationException("Query $search clause not valid", new ValidationError(ex.Message)); + } if (search != null) { return Filter.Text(SearchTermVisitor.Visit(search.Expression).ToString()); } - var filter = query.ParseFilter(); + FilterClause filter; + try + { + filter = query.ParseFilter(); + } + catch (ODataException ex) + { + throw new ValidationException("Query $filter clause not valid", new ValidationError(ex.Message)); + } if (filter != null) { diff --git a/src/Squidex/app/features/schemas/pages/schema/schema-page.component.html b/src/Squidex/app/features/schemas/pages/schema/schema-page.component.html index bd002ab0c..d8fc3ce17 100644 --- a/src/Squidex/app/features/schemas/pages/schema/schema-page.component.html +++ b/src/Squidex/app/features/schemas/pages/schema/schema-page.component.html @@ -45,7 +45,7 @@
-