diff --git a/app/Http/Controllers/BaseController.php b/app/Http/Controllers/BaseController.php index 6d5cbd8b69ef..19bdc0e890bb 100644 --- a/app/Http/Controllers/BaseController.php +++ b/app/Http/Controllers/BaseController.php @@ -67,53 +67,14 @@ class BaseController extends Controller { $include = ''; - if (request()->has('first_load') && request()->input('first_load') == 'true') { + if(request()->has('first_load') && request()->input('first_load') == 'true') { + $include = $this->getRequestIncludes([]); - /* For very large accounts, we reduce the includes automatically */ - if (auth()->user()->getCompany()->clients->count() < 1000) { - $include = [ - 'account', - 'user.company_user', - 'token', - 'company.activities', - 'company.users.company_user', - 'company.tax_rates', - 'company.groups', - 'company.company_gateways.gateway', - 'company.clients', - 'company.products', - 'company.invoices', - //'company.payments', - 'company.payments.paymentables', - 'company.quotes', - 'company.vendors', - 'company.expenses', - 'company.tasks', - 'company.projects', - ]; - } else { - $include = [ - 'account', - 'user.company_user', - 'token', - 'company.activities', - 'company.users.company_user', - 'company.tax_rates', - 'company.groups', - // 'company.company_gateways.gateway', - // 'company.clients', - // 'company.products', - // 'company.invoices', - // 'company.payments', - // 'company.payments.paymentables', - // 'company.quotes', - ]; - } + $include = array_merge($this->forced_includes, $include); - $include = array_merge($this->forced_includes, $include); - - $include = implode(",", $include); - } elseif (request()->input('include') !== null) { + $include = implode(",", $include); + } + else if (request()->input('include') !== null) { $request_include = explode(",", request()->input('include')); $include = array_merge($this->forced_includes, $request_include); @@ -124,7 +85,7 @@ class BaseController extends Controller } $this->manager->parseIncludes($include); - + $this->serializer = request()->input('serializer') ?: EntityTransformer::API_SERIALIZER_ARRAY; if ($this->serializer === EntityTransformer::API_SERIALIZER_JSON) { @@ -284,19 +245,74 @@ class BaseController extends Controller ]; } + protected function getRequestIncludes($data) { - $included = request()->input('include'); - $included = explode(',', $included); - foreach ($included as $include) { - if ($include == 'clients') { - $data[] = 'clients.contacts'; - } elseif ($include) { - $data[] = $include; - } + $first_load = [ + 'account', + 'user.company_user', + 'token', + 'company.activities', + 'company.users.company_user', + 'company.tax_rates', + 'company.groups', + 'company.company_gateways.gateway', + 'company.clients.contacts', + 'company.products', + 'company.invoices', + 'company.payments.paymentables', + 'company.quotes', + 'company.vendors.contacts', + 'company.expenses', + 'company.tasks', + 'company.projects', + ]; + + $mini_load = [ + 'account', + 'user.company_user', + 'token', + 'company.activities', + 'company.users.company_user', + 'company.tax_rates', + 'company.groups', + ]; + + + if (request()->has('first_load') && request()->input('first_load') == 'true') + { + + if (auth()->user()->getCompany()->clients->count() > 1000) + { + + $data = $mini_load; + + } + else + { + + $data = $first_load; + + } + } + else + { + + $included = request()->input('include'); + $included = explode(',', $included); + + foreach ($included as $include) { + if ($include == 'clients') { + $data[] = 'clients.contacts'; + } elseif ($include) { + $data[] = $include; + } + } + } return $data; + } } diff --git a/app/Http/Middleware/QueryLogging.php b/app/Http/Middleware/QueryLogging.php index cccd459ca81a..e7eb6f1bd0dd 100644 --- a/app/Http/Middleware/QueryLogging.php +++ b/app/Http/Middleware/QueryLogging.php @@ -49,8 +49,9 @@ class QueryLogging $time = $timeEnd - $timeStart; Log::info($request->method() . ' - ' . $request->url() . ": $count queries - " . $time); - if($count > 50) - Log::info($queries); + // if($count > 50) + // Log::info($queries); + } } diff --git a/app/Models/Client.php b/app/Models/Client.php index 55138dbf6ae8..cdec1f1f1767 100644 --- a/app/Models/Client.php +++ b/app/Models/Client.php @@ -95,7 +95,7 @@ class Client extends BaseModel //'currency', // 'primary_contact', // 'country', - 'contacts', + // 'contacts', // 'shipping_country', // 'company', ]; diff --git a/app/Models/Vendor.php b/app/Models/Vendor.php index c085458307b1..c512547b2f57 100644 --- a/app/Models/Vendor.php +++ b/app/Models/Vendor.php @@ -54,7 +54,7 @@ class Vendor extends BaseModel ]; protected $with = [ - 'contacts', + // 'contacts', ]; public function documents() diff --git a/app/Transformers/ClientTransformer.php b/app/Transformers/ClientTransformer.php index 10180e48170c..71fa14701e51 100644 --- a/app/Transformers/ClientTransformer.php +++ b/app/Transformers/ClientTransformer.php @@ -113,7 +113,7 @@ class ClientTransformer extends EntityTransformer 'id_number' => $client->id_number ?: '', 'updated_at' => (int)$client->updated_at, 'archived_at' => (int)$client->deleted_at, - 'display_name' => $client->present()->name() + //'display_name' => $client->present()->name() ]; } } diff --git a/app/Transformers/PaymentTransformer.php b/app/Transformers/PaymentTransformer.php index ca0d939f5a2b..9dd6a5954ca9 100644 --- a/app/Transformers/PaymentTransformer.php +++ b/app/Transformers/PaymentTransformer.php @@ -28,9 +28,9 @@ class PaymentTransformer extends EntityTransformer protected $defaultIncludes = []; protected $availableIncludes = [ - 'client', - 'invoices', - 'paymentables' + 'client', + 'invoices', + 'paymentables' ]; public function __construct($serializer = null)