@@ -20,17 +20,6 @@ public class QueryParser : IQueryParser
2020 private readonly IControllerContext _controllerContext ;
2121 private readonly JsonApiOptions _options ;
2222
23- private const string FILTER = "filter" ;
24- private const string SORT = "sort" ;
25- private const string INCLUDE = "include" ;
26- private const string PAGE = "page" ;
27- private const string FIELDS = "fields" ;
28- private const char OPEN_BRACKET = '[' ;
29- private const char CLOSE_BRACKET = ']' ;
30- private const char COMMA = ',' ;
31- private const char COLON = ':' ;
32- private const string COLON_STR = ":" ;
33-
3423 public QueryParser (
3524 IControllerContext controllerContext ,
3625 JsonApiOptions options )
@@ -46,35 +35,35 @@ public virtual QuerySet Parse(IQueryCollection query)
4635
4736 foreach ( var pair in query )
4837 {
49- if ( pair . Key . StartsWith ( FILTER ) )
38+ if ( pair . Key . StartsWith ( QueryConstants . FILTER ) )
5039 {
5140 if ( disabledQueries . HasFlag ( QueryParams . Filter ) == false )
5241 querySet . Filters . AddRange ( ParseFilterQuery ( pair . Key , pair . Value ) ) ;
5342 continue ;
5443 }
5544
56- if ( pair . Key . StartsWith ( SORT ) )
45+ if ( pair . Key . StartsWith ( QueryConstants . SORT ) )
5746 {
5847 if ( disabledQueries . HasFlag ( QueryParams . Sort ) == false )
5948 querySet . SortParameters = ParseSortParameters ( pair . Value ) ;
6049 continue ;
6150 }
6251
63- if ( pair . Key . StartsWith ( INCLUDE ) )
52+ if ( pair . Key . StartsWith ( QueryConstants . INCLUDE ) )
6453 {
6554 if ( disabledQueries . HasFlag ( QueryParams . Include ) == false )
6655 querySet . IncludedRelationships = ParseIncludedRelationships ( pair . Value ) ;
6756 continue ;
6857 }
6958
70- if ( pair . Key . StartsWith ( PAGE ) )
59+ if ( pair . Key . StartsWith ( QueryConstants . PAGE ) )
7160 {
7261 if ( disabledQueries . HasFlag ( QueryParams . Page ) == false )
7362 querySet . PageQuery = ParsePageQuery ( querySet . PageQuery , pair . Key , pair . Value ) ;
7463 continue ;
7564 }
7665
77- if ( pair . Key . StartsWith ( FIELDS ) )
66+ if ( pair . Key . StartsWith ( QueryConstants . FIELDS ) )
7867 {
7968 if ( disabledQueries . HasFlag ( QueryParams . Fields ) == false )
8069 querySet . Fields = ParseFieldsQuery ( pair . Key , pair . Value ) ;
@@ -94,9 +83,9 @@ protected virtual List<FilterQuery> ParseFilterQuery(string key, string value)
9483 // expected input = filter[id]=eq:1
9584 var queries = new List < FilterQuery > ( ) ;
9685
97- var propertyName = key . Split ( OPEN_BRACKET , CLOSE_BRACKET ) [ 1 ] ;
86+ var propertyName = key . Split ( QueryConstants . OPEN_BRACKET , QueryConstants . CLOSE_BRACKET ) [ 1 ] ;
9887
99- var values = value . Split ( COMMA ) ;
88+ var values = value . Split ( QueryConstants . COMMA ) ;
10089 foreach ( var val in values )
10190 {
10291 ( var operation , var filterValue ) = ParseFilterOperation ( val ) ;
@@ -111,7 +100,7 @@ protected virtual (string operation, string value) ParseFilterOperation(string v
111100 if ( value . Length < 3 )
112101 return ( string . Empty , value ) ;
113102
114- var operation = value . Split ( COLON ) ;
103+ var operation = value . Split ( QueryConstants . COLON ) ;
115104
116105 if ( operation . Length == 1 )
117106 return ( string . Empty , value ) ;
@@ -121,7 +110,7 @@ protected virtual (string operation, string value) ParseFilterOperation(string v
121110 return ( string . Empty , value ) ;
122111
123112 var prefix = operation [ 0 ] ;
124- value = string . Join ( COLON_STR , operation . Skip ( 1 ) ) ;
113+ value = string . Join ( QueryConstants . COLON_STR , operation . Skip ( 1 ) ) ;
125114
126115 return ( prefix , value ) ;
127116 }
@@ -132,7 +121,7 @@ protected virtual PageQuery ParsePageQuery(PageQuery pageQuery, string key, stri
132121 // page[number]=1
133122 pageQuery = pageQuery ?? new PageQuery ( ) ;
134123
135- var propertyName = key . Split ( OPEN_BRACKET , CLOSE_BRACKET ) [ 1 ] ;
124+ var propertyName = key . Split ( QueryConstants . OPEN_BRACKET , QueryConstants . CLOSE_BRACKET ) [ 1 ] ;
136125
137126 const string SIZE = "size" ;
138127 const string NUMBER = "number" ;
@@ -157,7 +146,7 @@ protected virtual List<SortQuery> ParseSortParameters(string value)
157146 var sortParameters = new List < SortQuery > ( ) ;
158147
159148 const char DESCENDING_SORT_OPERATOR = '-' ;
160- var sortSegments = value . Split ( COMMA ) ;
149+ var sortSegments = value . Split ( QueryConstants . COMMA ) ;
161150
162151 foreach ( var sortSegment in sortSegments )
163152 {
@@ -189,14 +178,14 @@ protected virtual List<string> ParseIncludedRelationships(string value)
189178 throw new JsonApiException ( 400 , "Deeply nested relationships are not supported" ) ;
190179
191180 return value
192- . Split ( COMMA )
181+ . Split ( QueryConstants . COMMA )
193182 . ToList ( ) ;
194183 }
195184
196185 protected virtual List < string > ParseFieldsQuery ( string key , string value )
197186 {
198187 // expected: fields[TYPE]=prop1,prop2
199- var typeName = key . Split ( OPEN_BRACKET , CLOSE_BRACKET ) [ 1 ] ;
188+ var typeName = key . Split ( QueryConstants . OPEN_BRACKET , QueryConstants . CLOSE_BRACKET ) [ 1 ] ;
200189
201190 const string ID = "Id" ;
202191 var includedFields = new List < string > { ID } ;
@@ -205,7 +194,7 @@ protected virtual List<string> ParseFieldsQuery(string key, string value)
205194 if ( string . Equals ( typeName , _controllerContext . RequestEntity . EntityName , StringComparison . OrdinalIgnoreCase ) == false )
206195 return includedFields ;
207196
208- var fields = value . Split ( COMMA ) ;
197+ var fields = value . Split ( QueryConstants . COMMA ) ;
209198 foreach ( var field in fields )
210199 {
211200 var attr = _controllerContext . RequestEntity
0 commit comments