@@ -36,6 +36,7 @@ + (nullable instancetype)findCommandForClassWithName:(NSString *)className
3636 conditions : (NSDictionary *)conditions
3737 selectedKeys : (NSSet *)selectedKeys
3838 includedKeys : (NSSet *)includedKeys
39+ excludedKeys : (NSSet *)excludedKeys
3940 limit : (NSInteger )limit
4041 skip : (NSInteger )skip
4142 explain : (BOOL )explain
@@ -48,6 +49,7 @@ + (nullable instancetype)findCommandForClassWithName:(NSString *)className
4849 conditions: conditions
4950 selectedKeys: selectedKeys
5051 includedKeys: includedKeys
52+ excludedKeys: excludedKeys
5153 limit: limit
5254 skip: skip
5355 explain: explain
@@ -102,6 +104,7 @@ + (nullable NSDictionary *)findCommandParametersForQueryState:(PFQueryState *)qu
102104 conditions: queryState.conditions
103105 selectedKeys: queryState.selectedKeys
104106 includedKeys: queryState.includedKeys
107+ excludedKeys: queryState.excludedKeys
105108 limit: queryState.limit
106109 skip: queryState.skip
107110 explain: queryState.explain
@@ -115,6 +118,7 @@ + (nullable NSDictionary *)findCommandParametersWithOrder:(NSString *)order
115118 conditions : (NSDictionary *)conditions
116119 selectedKeys : (NSSet *)selectedKeys
117120 includedKeys : (NSSet *)includedKeys
121+ excludedKeys : (NSSet *)excludedKeys
118122 limit : (NSInteger )limit
119123 skip : (NSInteger )skip
120124 explain : (BOOL )explain
@@ -137,6 +141,11 @@ + (nullable NSDictionary *)findCommandParametersWithOrder:(NSString *)order
137141 NSArray *keysArray = [includedKeys sortedArrayUsingDescriptors: sortDescriptors];
138142 parameters[@" include" ] = [keysArray componentsJoinedByString: @" ," ];
139143 }
144+ if (excludedKeys.count > 0 ) {
145+ NSArray *sortDescriptors = @[ [NSSortDescriptor sortDescriptorWithKey: @" self" ascending: YES selector: @selector (compare: )] ];
146+ NSArray *keysArray = [excludedKeys sortedArrayUsingDescriptors: sortDescriptors];
147+ parameters[@" excludedKeys" ] = [keysArray componentsJoinedByString: @" ," ];
148+ }
140149 if (limit >= 0 ) {
141150 parameters[@" limit" ] = [NSString stringWithFormat: @" %d " , (int )limit];
142151 }
@@ -171,12 +180,14 @@ + (nullable NSDictionary *)findCommandParametersWithOrder:(NSString *)order
171180 PFParameterAssert (subquery.state .skip == 0 , @" OR queries do not support sub queries with skip" );
172181 PFParameterAssert (subquery.state .sortKeys .count == 0 , @" OR queries do not support sub queries with order" );
173182 PFParameterAssert (subquery.state .includedKeys .count == 0 , @" OR queries do not support sub-queries with includes" );
183+ PFParameterAssert (subquery.state .excludedKeys .count == 0 , @" OR queries do not support sub-queries with excludeKeys" );
174184 PFParameterAssert (subquery.state .selectedKeys == nil , @" OR queries do not support sub-queries with selectKeys" );
175185
176186 NSDictionary *queryDict = [self findCommandParametersWithOrder: subquery.state.sortOrderString
177187 conditions: subquery.state.conditions
178188 selectedKeys: subquery.state.selectedKeys
179189 includedKeys: subquery.state.includedKeys
190+ excludedKeys: subquery.state.excludedKeys
180191 limit: subquery.state.limit
181192 skip: subquery.state.skip
182193 explain: subquery.state.explain
@@ -240,6 +251,7 @@ + (nullable id)_encodeSubqueryIfNeeded:(id)object error:(NSError * __autoreleasi
240251 conditions: subquery.state.conditions
241252 selectedKeys: subquery.state.selectedKeys
242253 includedKeys: subquery.state.includedKeys
254+ excludedKeys: subquery.state.excludedKeys
243255 limit: subquery.state.limit
244256 skip: subquery.state.skip
245257 explain: subquery.state.explain
0 commit comments