Added support for filtering API lists by updated_at

This commit is contained in:
Hillel Coren 2016-05-04 23:49:20 +03:00
parent 3300619d28
commit 32bf47aacf

View File

@ -90,9 +90,20 @@ class BaseAPIController extends Controller
$transformerClass = EntityModel::getTransformerName($this->entityType); $transformerClass = EntityModel::getTransformerName($this->entityType);
$transformer = new $transformerClass(Auth::user()->account, Input::get('serializer')); $transformer = new $transformerClass(Auth::user()->account, Input::get('serializer'));
$include = $transformer->getDefaultIncludes(); $includes = $transformer->getDefaultIncludes();
$include = $this->getRequestIncludes($include); $includes = $this->getRequestIncludes($includes);
$query->with($include);
if ($updatedAt = Input::get('updated_at')) {
$query->where('updated_at', '>=', $updatedAt);
}
foreach ($includes as $include) {
$query->with([$include => function($query) use ($updatedAt) {
if ($updatedAt) {
$query->where('updated_at', '>=', $updatedAt);
}
}]);
}
if ($clientPublicId = Input::get('client_id')) { if ($clientPublicId = Input::get('client_id')) {
$filter = function($query) use ($clientPublicId) { $filter = function($query) use ($clientPublicId) {
@ -156,7 +167,7 @@ class BaseAPIController extends Controller
if (Utils::isNinjaDev()) { if (Utils::isNinjaDev()) {
$count = count(\DB::getQueryLog()); $count = count(\DB::getQueryLog());
Log::info(Request::method() . ' - ' . Request::url() . ": $count queries"); Log::info(Request::method() . ' - ' . Request::url() . ": $count queries");
//Log::info(print_r(\DB::getQueryLog(), true)); //Log::info(json_encode(\DB::getQueryLog()));
} }
$index = Request::get('index') ?: 'data'; $index = Request::get('index') ?: 'data';