2
2
3
3
namespace Nanvaie \DatabaseRepository \Models \Repository ;
4
4
5
- use App \Models \Entities \Entity ;
6
- use App \Models \Factories \IFactory ;
7
- use App \Models \General \Polygon ;
8
- use App \Models \Griew \FilterOperator ;
5
+ use Nanvaie \DatabaseRepository \Models \Entity \Entity ;
6
+ use Nanvaie \DatabaseRepository \Models \Factory \IFactory ;
7
+ use Nanvaie \DatabaseRepository \Models \Enums \GriewFilterOperator ;
9
8
use Illuminate \Database \ConnectionInterface ;
10
9
use Illuminate \Database \Query \Builder ;
11
10
use Illuminate \Support \Collection ;
@@ -209,13 +208,13 @@ protected function processFilter(Builder $query, array $filters): Builder
209
208
{
210
209
foreach ($ filters as $ filter ) {
211
210
switch (strtolower (snake_case ($ filter ->operator ))) {
212
- case FilterOperator ::IS_NULL :
211
+ case GriewFilterOperator ::IS_NULL :
213
212
$ query ->whereNull ($ filter ->name );
214
213
break ;
215
- case FilterOperator ::IS_NOT_NULL :
214
+ case GriewFilterOperator ::IS_NOT_NULL :
216
215
$ query ->whereNotNull ($ filter ->name );
217
216
break ;
218
- case FilterOperator ::IS_EQUAL_TO :
217
+ case GriewFilterOperator ::IS_EQUAL_TO :
219
218
if (is_string ($ filter ->operand1 ) && Str::contains ($ filter ->operand1 , '| ' )) {
220
219
// create in functionality with equal string
221
220
$ arr = array_filter (explode ('| ' , $ filter ->operand1 ));
@@ -224,7 +223,7 @@ protected function processFilter(Builder $query, array $filters): Builder
224
223
$ query ->where ($ filter ->name , '= ' , $ filter ->operand1 );
225
224
}
226
225
break ;
227
- case FilterOperator ::IS_NOT_EQUAL_TO :
226
+ case GriewFilterOperator ::IS_NOT_EQUAL_TO :
228
227
if (is_string ($ filter ->operand1 ) && Str::contains ($ filter ->operand1 , '| ' )) {
229
228
// create in functionality with equal string
230
229
$ arr = array_filter (explode ('| ' , $ filter ->operand1 ));
@@ -233,49 +232,43 @@ protected function processFilter(Builder $query, array $filters): Builder
233
232
$ query ->where ($ filter ->name , '<> ' , $ filter ->operand1 );
234
233
}
235
234
break ;
236
- case FilterOperator ::START_WITH :
235
+ case GriewFilterOperator ::START_WITH :
237
236
$ query ->where ($ filter ->name , 'LIKE ' , $ filter ->operand1 . '% ' );
238
237
break ;
239
- case FilterOperator ::DOES_NOT_CONTAINS :
238
+ case GriewFilterOperator ::DOES_NOT_CONTAINS :
240
239
$ query ->where ($ filter ->name , 'NOT LIKE ' , '% ' . $ filter ->operand1 . '% ' );
241
240
break ;
242
- case FilterOperator ::CONTAINS :
241
+ case GriewFilterOperator ::CONTAINS :
243
242
$ query ->where ($ filter ->name , 'LIKE ' , '% ' . $ filter ->operand1 . '% ' );
244
243
break ;
245
- case FilterOperator ::ENDS_WITH :
244
+ case GriewFilterOperator ::ENDS_WITH :
246
245
$ query ->where ($ filter ->name , 'LIKE ' , '% ' . $ filter ->operand1 );
247
246
break ;
248
- case FilterOperator ::IN :
247
+ case GriewFilterOperator ::IN :
249
248
$ query ->whereIn ($ filter ->name , $ filter ->operand1 );
250
249
break ;
251
- case FilterOperator ::NOT_IN :
250
+ case GriewFilterOperator ::NOT_IN :
252
251
$ query ->whereNotIn ($ filter ->name , $ filter ->operand1 );
253
252
break ;
254
- case FilterOperator ::BETWEEN :
253
+ case GriewFilterOperator ::BETWEEN :
255
254
$ query ->whereBetween ($ filter ->name , array ($ filter ->operand1 , $ filter ->operand2 ));
256
255
break ;
257
- case FilterOperator ::IS_AFTER_THAN_OR_EQUAL_TO :
258
- case FilterOperator ::IS_GREATER_THAN_OR_EQUAL_TO :
256
+ case GriewFilterOperator ::IS_AFTER_THAN_OR_EQUAL_TO :
257
+ case GriewFilterOperator ::IS_GREATER_THAN_OR_EQUAL_TO :
259
258
$ query ->where ($ filter ->name , '>= ' , $ filter ->operand1 );
260
259
break ;
261
- case FilterOperator ::IS_AFTER_THAN :
262
- case FilterOperator ::IS_GREATER_THAN :
260
+ case GriewFilterOperator ::IS_AFTER_THAN :
261
+ case GriewFilterOperator ::IS_GREATER_THAN :
263
262
$ query ->where ($ filter ->name , '> ' , $ filter ->operand1 );
264
263
break ;
265
- case FilterOperator ::IS_LESS_THAN_OR_EQUAL_TO :
266
- case FilterOperator ::IS_BEFORE_THAN_OR_EQUAL_TO :
264
+ case GriewFilterOperator ::IS_LESS_THAN_OR_EQUAL_TO :
265
+ case GriewFilterOperator ::IS_BEFORE_THAN_OR_EQUAL_TO :
267
266
$ query ->where ($ filter ->name , '<= ' , $ filter ->operand1 );
268
267
break ;
269
- case FilterOperator ::IS_LESS_THAN :
270
- case FilterOperator ::IS_BEFORE_THAN :
268
+ case GriewFilterOperator ::IS_LESS_THAN :
269
+ case GriewFilterOperator ::IS_BEFORE_THAN :
271
270
$ query ->where ($ filter ->name , '< ' , $ filter ->operand1 );
272
271
break ;
273
- case FilterOperator::IS_INSIDE_POLYGON :
274
- $ name = $ filter ->name ;
275
- /** @var Polygon $polygon */
276
- $ polygon = $ filter ->operand1 ;
277
- $ query ->whereRaw ("Contains(GeomFromText(' {$ polygon ->toRaw ()}'), {$ name }) " );
278
- break ;
279
272
}
280
273
}
281
274
0 commit comments