API optimizations

This commit is contained in:
Hillel Coren 2016-05-03 11:39:10 +03:00
parent 0645cdddb1
commit be420ad1fc
2 changed files with 14 additions and 6 deletions

View File

@ -87,7 +87,12 @@ class BaseAPIController extends Controller
protected function listResponse($query)
{
$query->with($this->getIncluded());
$transformerClass = EntityModel::getTransformerName($this->entityType);
$transformer = new $transformerClass(Auth::user()->account, Input::get('serializer'));
$include = $transformer->getDefaultIncludes();
$include = $this->getRequestIncludes($include);
$query->with($include);
if ($clientPublicId = Input::get('client_id')) {
$filter = function($query) use ($clientPublicId) {
@ -104,9 +109,6 @@ class BaseAPIController extends Controller
}
}
$transformerClass = EntityModel::getTransformerName($this->entityType);
$transformer = new $transformerClass(Auth::user()->account, Input::get('serializer'));
$data = $this->createCollection($query, $transformer, $this->entityType);
return $this->response($data);
@ -154,6 +156,7 @@ class BaseAPIController extends Controller
if (Utils::isNinjaDev()) {
$count = count(\DB::getQueryLog());
Log::info(Request::method() . ' - ' . Request::url() . ": $count queries");
//Log::info(print_r(\DB::getQueryLog(), true));
}
$index = Request::get('index') ?: 'data';
@ -188,9 +191,9 @@ class BaseAPIController extends Controller
}
protected function getIncluded()
protected function getRequestIncludes($data)
{
$data = ['user'];
$data[] = 'user';
$included = Request::get('include');
$included = explode(',', $included);

View File

@ -37,4 +37,9 @@ class EntityTransformer extends TransformerAbstract
{
return $date ? $date->getTimestamp() : null;
}
public function getDefaultIncludes()
{
return $this->defaultIncludes;
}
}