This commit is contained in:
foobar
2022-08-21 21:39:06 +02:00
commit 27c1969aaa
7354 changed files with 897064 additions and 0 deletions

36
app/Filters/ApiFilter.php Normal file
View File

@@ -0,0 +1,36 @@
<?php
namespace App\Filters;
use Illuminate\Http\Request;
class ApiFilter {
protected $safeParms = [];
protected $columnMap = [];
protected $operatorMap = [];
public function transform(Request $request) {
$eloQuery = [];
foreach ($this->safeParms as $parm => $operators) {
$query = $request->query($parm);
if (!isset($query)) {
continue;
}
$column = $this->columnMap[$parm] ?? $parm;
foreach ($operators as $operator) {
if (isset($query[$operator])) {
$eloQuery[] = [$column, $this->operatorMap[$operator], $query[$operator]];
}
}
}
return $eloQuery;
}
}

View File

@@ -0,0 +1,26 @@
<?php
namespace App\Filters;
use App\Filters\ApiFilter;
class CityFilter extends ApiFilter {
protected $safeParms = [
'locationName' => ['eq'],
'locationCountry' => ['eq'],
'id' => ['eq']
];
protected $columnMap = [
'locationName' => 'location_name',
'locationCountry' => 'location_country'
];
protected $operatorMap = [
'eq' => '=',
'lt' => '<',
'lte' => '<=',
'gt' => '>',
'gte' => '>=',
];
}