From be420ad1fc7cfadc62c9bfa8c66fa769103d81d0 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Tue, 3 May 2016 11:39:10 +0300 Subject: [PATCH] API optimizations --- app/Http/Controllers/BaseAPIController.php | 15 +++++++++------ app/Ninja/Transformers/EntityTransformer.php | 5 +++++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/BaseAPIController.php b/app/Http/Controllers/BaseAPIController.php index 07ed5bb42f03..a1983ed2b5f0 100644 --- a/app/Http/Controllers/BaseAPIController.php +++ b/app/Http/Controllers/BaseAPIController.php @@ -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); diff --git a/app/Ninja/Transformers/EntityTransformer.php b/app/Ninja/Transformers/EntityTransformer.php index ea0dba263d97..af1304acd67f 100644 --- a/app/Ninja/Transformers/EntityTransformer.php +++ b/app/Ninja/Transformers/EntityTransformer.php @@ -37,4 +37,9 @@ class EntityTransformer extends TransformerAbstract { return $date ? $date->getTimestamp() : null; } + + public function getDefaultIncludes() + { + return $this->defaultIncludes; + } }