From 7a2f2e87b2919e6a8a46a5c1e4da5613ee3369d4 Mon Sep 17 00:00:00 2001 From: weichien00 Date: Mon, 9 Aug 2021 02:16:24 +0800 Subject: [PATCH] update: change to save default address based on company module id --- .../ControllersLogic/SetAddressToDefaultLogic.php | 12 ++++++++++-- .../Addresses/Services/ResetsAddressesDefault.php | 5 +++-- .../Addresses/Services/SetsAddressToDefault.php | 2 +- app/Http/Resources/AddressResource.php | 2 +- app/Models/Address.php | 2 ++ 5 files changed, 17 insertions(+), 6 deletions(-) diff --git a/app/Classes/Modules/Addresses/ControllersLogic/SetAddressToDefaultLogic.php b/app/Classes/Modules/Addresses/ControllersLogic/SetAddressToDefaultLogic.php index 2f94809b..1d6f81bb 100644 --- a/app/Classes/Modules/Addresses/ControllersLogic/SetAddressToDefaultLogic.php +++ b/app/Classes/Modules/Addresses/ControllersLogic/SetAddressToDefaultLogic.php @@ -9,6 +9,8 @@ use App\Classes\Modules\Addresses\Standards\Rules\CanUpdateAddress; use App\Classes\Modules\Addresses\Services\ResetsAddressesDefault; use App\Classes\Modules\Addresses\Services\SetsAddressToDefault; +use App\Classes\Modules\Companies\Services\FetchesCompanyModule; + use App\Models\Address; use ErrorException; use Illuminate\Http\JsonResponse; @@ -38,17 +40,21 @@ class SetAddressToDefaultLogic extends AbstractControllerLogic /** @var SetsAddressToDefault*/ private $setsAddressToDefault; + /** @var FetchesCompanyModule*/ + private $fetchesCompanyModule; + /** * SetAddressToDefaultLogic constructor. * @param ResetsAddressesDefault $resetsAddressesDefault * @param FetchesAddress $fetchesAddress * @param SetsAddressToDefault $setsAddressToDefault */ - public function __construct(ResetsAddressesDefault $resetsAddressesDefault, FetchesAddress $fetchesAddress, SetsAddressToDefault $setsAddressToDefault) + public function __construct(ResetsAddressesDefault $resetsAddressesDefault, FetchesAddress $fetchesAddress, SetsAddressToDefault $setsAddressToDefault , FetchesCompanyModule $fetchesCompanyModule) { $this->resetsAddressesDefault = $resetsAddressesDefault; $this->fetchesAddress = $fetchesAddress; $this->setsAddressToDefault = $setsAddressToDefault; + $this->fetchesCompanyModule = $fetchesCompanyModule; } /** @@ -63,7 +69,9 @@ class SetAddressToDefaultLogic extends AbstractControllerLogic $address = $this->fetchesAddress->execute(['id' => $request->route('id')]); - $this->resetsAddressesDefault->execute($address); + $companyModule = $this->fetchesCompanyModule->execute(['id' => $request->input('company_module_id')]); + + $this->resetsAddressesDefault->execute($companyModule); return $this->resourceResponse(new AddressResource($this->setsAddressToDefault->execute($address))); } diff --git a/app/Classes/Modules/Addresses/Services/ResetsAddressesDefault.php b/app/Classes/Modules/Addresses/Services/ResetsAddressesDefault.php index b9f6346e..1d441326 100644 --- a/app/Classes/Modules/Addresses/Services/ResetsAddressesDefault.php +++ b/app/Classes/Modules/Addresses/Services/ResetsAddressesDefault.php @@ -4,6 +4,7 @@ namespace App\Classes\Modules\Addresses\Services; use App\Classes\General\Eloquent\AbstractUpdateRecord; use App\Models\Address; +use App\Models\CompanyModule; class ResetsAddressesDefault extends AbstractUpdateRecord { @@ -12,8 +13,8 @@ class ResetsAddressesDefault extends AbstractUpdateRecord * @param Address $address * @return void */ - public function execute(Address $address) + public function execute(CompanyModule $companyModule) { - $address->company->addresses()->update(['billing' => false]); + $companyModule->addresses()->update(['default' => false]); } } diff --git a/app/Classes/Modules/Addresses/Services/SetsAddressToDefault.php b/app/Classes/Modules/Addresses/Services/SetsAddressToDefault.php index 07d2a2fc..fad74a76 100644 --- a/app/Classes/Modules/Addresses/Services/SetsAddressToDefault.php +++ b/app/Classes/Modules/Addresses/Services/SetsAddressToDefault.php @@ -15,7 +15,7 @@ class SetsAddressToDefault extends AbstractUpdateRecord */ public function execute(Address $model) { - $model->billing = true; + $model->default = true; return $this->handler($model); } diff --git a/app/Http/Resources/AddressResource.php b/app/Http/Resources/AddressResource.php index 4e545092..342c194e 100644 --- a/app/Http/Resources/AddressResource.php +++ b/app/Http/Resources/AddressResource.php @@ -22,7 +22,7 @@ class AddressResource extends JsonResource 'state' => $this->state, 'post_code' => $this->postcode, 'country' => $this->country, - 'billing' => (int) $this->billing + 'default' => (int) $this->default ]; } } diff --git a/app/Models/Address.php b/app/Models/Address.php index 15340b3c..e915ef41 100644 --- a/app/Models/Address.php +++ b/app/Models/Address.php @@ -27,6 +27,8 @@ class Address extends AbstractModel protected $dates = ['deleted_at']; + protected $fillable = ['default']; + /** * @return BelongsTo */