From 1f393fc0658b5f70d524eca693bda19a981be47c Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Sun, 30 Dec 2018 12:08:26 +0200 Subject: [PATCH] Added task statuses to the API --- app/Models/Account.php | 8 ++++++ .../Transformers/TaskStatusTransformer.php | 26 +++++++++++++++++++ .../Transformers/UserAccountTransformer.php | 13 ++++++++++ 3 files changed, 47 insertions(+) create mode 100644 app/Ninja/Transformers/TaskStatusTransformer.php diff --git a/app/Models/Account.php b/app/Models/Account.php index 1f89f5809..cfe72e9cc 100644 --- a/app/Models/Account.php +++ b/app/Models/Account.php @@ -368,6 +368,14 @@ class Account extends Eloquent return $this->hasMany('App\Models\TaxRate'); } + /** + * @return \Illuminate\Database\Eloquent\Relations\HasMany + */ + public function task_statuses() + { + return $this->hasMany('App\Models\TaskStatus')->orderBy('sort_order'); + } + /** * @return \Illuminate\Database\Eloquent\Relations\HasMany */ diff --git a/app/Ninja/Transformers/TaskStatusTransformer.php b/app/Ninja/Transformers/TaskStatusTransformer.php new file mode 100644 index 000000000..de7d94f55 --- /dev/null +++ b/app/Ninja/Transformers/TaskStatusTransformer.php @@ -0,0 +1,26 @@ +getDefaults($taskStatus), [ + 'id' => (int) $taskStatus->public_id, + 'name' => $taskStatus->name ?: '', + 'sort_order' => (int) $taskStatus->sort_order + 1, + ]); + } +} diff --git a/app/Ninja/Transformers/UserAccountTransformer.php b/app/Ninja/Transformers/UserAccountTransformer.php index 3db2e14f9..05b8a2049 100644 --- a/app/Ninja/Transformers/UserAccountTransformer.php +++ b/app/Ninja/Transformers/UserAccountTransformer.php @@ -63,6 +63,7 @@ class UserAccountTransformer extends EntityTransformer 'expense_categories', 'account_email_settings', 'custom_payment_terms', + 'task_statuses', ]; protected $tokenName; @@ -105,6 +106,18 @@ class UserAccountTransformer extends EntityTransformer return $this->includeCollection($this->account->users, $transformer, 'users'); } + /** + * @param Account $account + * + * @return \League\Fractal\Resource\Collection + */ + public function includeTaskStatuses(User $user) + { + $transformer = new TaskStatusTransformer($this->account, $this->serializer); + + return $this->includeCollection($this->account->task_statuses, $transformer, 'task_statuses'); + } + /** * @param Account $account *