diff --git a/app/Http/Controllers/AccountApiController.php b/app/Http/Controllers/AccountApiController.php index 4ac5d99018f9..3358c5ac7301 100644 --- a/app/Http/Controllers/AccountApiController.php +++ b/app/Http/Controllers/AccountApiController.php @@ -91,24 +91,7 @@ class AccountApiController extends BaseAPIController $account = Auth::user()->account; $updatedAt = $request->updated_at ? date('Y-m-d H:i:s', $request->updated_at) : false; - $map = [ - 'users' => [], - 'clients' => ['contacts'], - 'invoices' => ['invoice_items', 'user', 'client', 'payments'], - 'products' => [], - 'tax_rates' => [], - 'expenses' => ['client', 'invoice', 'vendor'], - 'payments' => ['invoice'], - ]; - - foreach ($map as $key => $values) { - $account->load([$key => function($query) use ($values, $updatedAt) { - $query->withTrashed()->with($values); - if ($updatedAt) { - $query->where('updated_at', '>=', $updatedAt); - } - }]); - } + $account->loadAllData($updatedAt); $transformer = new AccountTransformer(null, $request->serializer); $account = $this->createItem($account, $transformer, 'account'); diff --git a/app/Models/Account.php b/app/Models/Account.php index 5662cad9a510..368ecac825ab 100644 --- a/app/Models/Account.php +++ b/app/Models/Account.php @@ -614,6 +614,28 @@ class Account extends Eloquent $this->save(); } + public function loadAllData($updatedAt = null) + { + $map = [ + 'users' => [], + 'clients' => ['contacts'], + 'invoices' => ['invoice_items', 'user', 'client', 'payments'], + 'products' => [], + 'tax_rates' => [], + 'expenses' => ['client', 'invoice', 'vendor'], + 'payments' => ['invoice'], + ]; + + foreach ($map as $key => $values) { + $this->load([$key => function($query) use ($values, $updatedAt) { + $query->withTrashed()->with($values); + if ($updatedAt) { + $query->where('updated_at', '>=', $updatedAt); + } + }]); + } + } + public function loadLocalizationSettings($client = false) { $this->load('timezone', 'date_format', 'datetime_format', 'language');