From 708422dd9b0e67cdace1c110aa1bee63bd6e049b Mon Sep 17 00:00:00 2001 From: David Bomba Date: Mon, 13 Jul 2020 12:54:56 +1000 Subject: [PATCH] Add hashed transformer for company tokens --- app/Http/Controllers/BaseController.php | 2 + app/Models/Company.php | 5 ++ .../CompanyTokenHashedTransformer.php | 56 +++++++++++++++++++ app/Transformers/CompanyTransformer.php | 11 +++- 4 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 app/Transformers/CompanyTokenHashedTransformer.php diff --git a/app/Http/Controllers/BaseController.php b/app/Http/Controllers/BaseController.php index 9522eccb5ae5..8d80a3bb3fa5 100644 --- a/app/Http/Controllers/BaseController.php +++ b/app/Http/Controllers/BaseController.php @@ -321,6 +321,8 @@ class BaseController extends Controller 'company.tasks', 'company.projects', 'company.designs', + 'company.webhooks', + 'company.tokens_hashed' ]; $mini_load = [ diff --git a/app/Models/Company.php b/app/Models/Company.php index 761bcaefe305..39e084fdcd84 100644 --- a/app/Models/Company.php +++ b/app/Models/Company.php @@ -374,6 +374,11 @@ class Company extends BaseModel return $this->hasMany(CompanyToken::class); } + public function tokens_hashed() + { + return $this->hasMany(CompanyToken::class); + } + public function company_users() { //return $this->hasMany(CompanyUser::class)->withTimestamps(); diff --git a/app/Transformers/CompanyTokenHashedTransformer.php b/app/Transformers/CompanyTokenHashedTransformer.php new file mode 100644 index 000000000000..46b755c08d4c --- /dev/null +++ b/app/Transformers/CompanyTokenHashedTransformer.php @@ -0,0 +1,56 @@ + $this->encodePrimaryKey($company_token->id), + 'user_id' => $this->encodePrimaryKey($company_token->user_id), + 'token' => substr($company_token->token, 0 ,10)."xxxxxxxxxxx", + 'name' => $company_token->name ?: '', + 'is_system' =>(bool)$company_token->is_system, + 'updated_at' => (int)$company_token->updated_at, + 'archived_at' => (int)$company_token->deleted_at, + 'created_at' => (int)$company_token->created_at, + 'is_deleted' => (bool)$company_token->is_deleted, + ]; + } +} diff --git a/app/Transformers/CompanyTransformer.php b/app/Transformers/CompanyTransformer.php index cf883facedca..6a31e1d61697 100644 --- a/app/Transformers/CompanyTransformer.php +++ b/app/Transformers/CompanyTransformer.php @@ -33,6 +33,7 @@ use App\Models\TaxRate; use App\Models\User; use App\Models\Webhook; use App\Transformers\CompanyLedgerTransformer; +use App\Transformers\CompanyTokenHashedTransformer; use App\Transformers\CompanyTokenTransformer; use App\Transformers\CreditTransformer; use App\Transformers\PaymentTermTransformer; @@ -82,7 +83,8 @@ class CompanyTransformer extends EntityTransformer 'tasks', 'ledger', 'webhooks', - 'tokens' + 'tokens', + 'tokens_hashed' ]; @@ -147,6 +149,13 @@ class CompanyTransformer extends EntityTransformer return $this->includeCollection($company->tokens, $transformer, CompanyToken::class); } + public function includeTokensHashed(Company $company) + { + $transformer = new CompanyTokenHashedTransformer($this->serializer); + + return $this->includeCollection($company->tokens, $transformer, CompanyToken::class); + } + public function includeWebhooks(Company $company) { $transformer = new WebhookTransformer($this->serializer);