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) 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')) { if ($clientPublicId = Input::get('client_id')) {
$filter = function($query) use ($clientPublicId) { $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); $data = $this->createCollection($query, $transformer, $this->entityType);
return $this->response($data); return $this->response($data);
@ -154,6 +156,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));
} }
$index = Request::get('index') ?: 'data'; $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 = Request::get('include');
$included = explode(',', $included); $included = explode(',', $included);

View File

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