From 9fcc415cc12f9b7d782bfcd8281ad0073b416bf0 Mon Sep 17 00:00:00 2001 From: Nikolay Andreev Date: Fri, 26 Feb 2021 11:42:54 +0200 Subject: [PATCH 1/3] Changes --- .../Controllers/Shop/AddressController.php | 53 +++++++++++-------- .../Resources/Customer/CustomerAddress.php | 2 + packages/Webkul/Core/src/Models/Address.php | 1 + 3 files changed, 35 insertions(+), 21 deletions(-) diff --git a/packages/Webkul/API/Http/Controllers/Shop/AddressController.php b/packages/Webkul/API/Http/Controllers/Shop/AddressController.php index 3d1390fed..83b92076d 100644 --- a/packages/Webkul/API/Http/Controllers/Shop/AddressController.php +++ b/packages/Webkul/API/Http/Controllers/Shop/AddressController.php @@ -31,7 +31,7 @@ class AddressController extends Controller /** * Controller instance * - * @param Webkul\Customer\Repositories\CustomerAddressRepository $customerAddressRepository + * @param CustomerAddressRepository $customerAddressRepository */ public function __construct(CustomerAddressRepository $customerAddressRepository) { @@ -49,12 +49,12 @@ class AddressController extends Controller /** * Get user address. * - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\Resources\Json\AnonymousResourceCollection */ public function get() { $customer = auth($this->guard)->user(); - + $addresses = $customer->addresses()->get(); return CustomerAddressResource::collection($addresses); @@ -63,13 +63,14 @@ class AddressController extends Controller /** * Store a newly created resource in storage. * - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\JsonResponse + * @throws \Illuminate\Validation\ValidationException */ public function store() { $customer = auth($this->guard)->user(); - if (request()->input('address1') && ! is_array(json_decode(request()->input('address1')))) { + if (request()->input('address1') && ! is_array(request()->input('address1'))) { return response()->json([ 'message' => 'address1 must be an array.', ]); @@ -77,18 +78,20 @@ class AddressController extends Controller if (request()->input('address1')) { request()->merge([ - 'address1' => implode(PHP_EOL, array_filter(json_decode(request()->input('address1')))), + 'address1' => implode(PHP_EOL, array_filter(request()->input('address1'))), 'customer_id' => $customer->id, ]); - } + } $this->validate(request(), [ 'address1' => 'string|required', - 'country' => 'string|required', - 'state' => 'string|required', - 'city' => 'string|required', + 'company' => 'string|nullable', + 'vat_id' => 'string|nullable', + 'country' => 'string|required', + 'state' => 'string|nullable', + 'city' => 'string|required', 'postcode' => 'required', - 'phone' => 'required', + 'phone' => 'required', ]); $customerAddress = $this->customerAddressRepository->create(request()->all()); @@ -101,29 +104,37 @@ class AddressController extends Controller /** * Update the specified resource in storage. - * - * @return \Illuminate\Http\Response + * @param int $id + * + * @return \Illuminate\Http\JsonResponse + * @throws \Illuminate\Validation\ValidationException */ - public function update() + public function update(int $id) { - $customer = auth($this->guard)->user(); + if (request()->input('address1') && ! is_array(request()->input('address1'))) { + return response()->json([ + 'message' => 'address1 must be an array.', + ]); + } request()->merge(['address1' => implode(PHP_EOL, array_filter(request()->input('address1')))]); $this->validate(request(), [ 'address1' => 'string|required', - 'country' => 'string|required', - 'state' => 'string|required', - 'city' => 'string|required', + 'company' => 'string|nullable', + 'vat_id' => 'string|nullable', + 'country' => 'string|required', + 'state' => 'string|nullable', + 'city' => 'string|required', 'postcode' => 'required', - 'phone' => 'required', + 'phone' => 'required', ]); - $this->customerAddressRepository->update(request()->all(), request()->input('id')); + $customerAddress = $this->customerAddressRepository->update(request()->all(), $id); return response()->json([ 'message' => 'Your address has been updated successfully.', - 'data' => new CustomerAddressResource($this->customerAddressRepository->find(request()->input('id'))), + 'data' => new CustomerAddressResource($customerAddress), ]); } } \ No newline at end of file diff --git a/packages/Webkul/API/Http/Resources/Customer/CustomerAddress.php b/packages/Webkul/API/Http/Resources/Customer/CustomerAddress.php index 6538496c0..8c9887b1e 100644 --- a/packages/Webkul/API/Http/Resources/Customer/CustomerAddress.php +++ b/packages/Webkul/API/Http/Resources/Customer/CustomerAddress.php @@ -19,6 +19,7 @@ class CustomerAddress extends JsonResource 'first_name' => $this->first_name, 'last_name' => $this->last_name, 'company_name' => $this->company_name, + 'vat_id' => $this->vat_id, 'address1' => explode(PHP_EOL, $this->address1), 'country' => $this->country, 'country_name' => core()->country_name($this->country), @@ -26,6 +27,7 @@ class CustomerAddress extends JsonResource 'city' => $this->city, 'postcode' => $this->postcode, 'phone' => $this->phone, + 'is_default' => $this->default_address, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at, ]; diff --git a/packages/Webkul/Core/src/Models/Address.php b/packages/Webkul/Core/src/Models/Address.php index fcbb7a3e6..f66279332 100644 --- a/packages/Webkul/Core/src/Models/Address.php +++ b/packages/Webkul/Core/src/Models/Address.php @@ -72,6 +72,7 @@ abstract class Address extends Model implements AddressContract protected $casts = [ 'additional' => 'array', + 'default_address' => 'boolean', ]; /** From 1097fa84f22d3791046e51bc729145e4dde8b6ae Mon Sep 17 00:00:00 2001 From: Nikolay Andreev Date: Fri, 26 Feb 2021 11:44:10 +0200 Subject: [PATCH 2/3] Changes --- .../Controllers/Shop/AddressController.php | 53 +++++++++++-------- .../Resources/Customer/CustomerAddress.php | 2 + packages/Webkul/Core/src/Models/Address.php | 1 + 3 files changed, 35 insertions(+), 21 deletions(-) diff --git a/packages/Webkul/API/Http/Controllers/Shop/AddressController.php b/packages/Webkul/API/Http/Controllers/Shop/AddressController.php index 3d1390fed..83b92076d 100644 --- a/packages/Webkul/API/Http/Controllers/Shop/AddressController.php +++ b/packages/Webkul/API/Http/Controllers/Shop/AddressController.php @@ -31,7 +31,7 @@ class AddressController extends Controller /** * Controller instance * - * @param Webkul\Customer\Repositories\CustomerAddressRepository $customerAddressRepository + * @param CustomerAddressRepository $customerAddressRepository */ public function __construct(CustomerAddressRepository $customerAddressRepository) { @@ -49,12 +49,12 @@ class AddressController extends Controller /** * Get user address. * - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\Resources\Json\AnonymousResourceCollection */ public function get() { $customer = auth($this->guard)->user(); - + $addresses = $customer->addresses()->get(); return CustomerAddressResource::collection($addresses); @@ -63,13 +63,14 @@ class AddressController extends Controller /** * Store a newly created resource in storage. * - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\JsonResponse + * @throws \Illuminate\Validation\ValidationException */ public function store() { $customer = auth($this->guard)->user(); - if (request()->input('address1') && ! is_array(json_decode(request()->input('address1')))) { + if (request()->input('address1') && ! is_array(request()->input('address1'))) { return response()->json([ 'message' => 'address1 must be an array.', ]); @@ -77,18 +78,20 @@ class AddressController extends Controller if (request()->input('address1')) { request()->merge([ - 'address1' => implode(PHP_EOL, array_filter(json_decode(request()->input('address1')))), + 'address1' => implode(PHP_EOL, array_filter(request()->input('address1'))), 'customer_id' => $customer->id, ]); - } + } $this->validate(request(), [ 'address1' => 'string|required', - 'country' => 'string|required', - 'state' => 'string|required', - 'city' => 'string|required', + 'company' => 'string|nullable', + 'vat_id' => 'string|nullable', + 'country' => 'string|required', + 'state' => 'string|nullable', + 'city' => 'string|required', 'postcode' => 'required', - 'phone' => 'required', + 'phone' => 'required', ]); $customerAddress = $this->customerAddressRepository->create(request()->all()); @@ -101,29 +104,37 @@ class AddressController extends Controller /** * Update the specified resource in storage. - * - * @return \Illuminate\Http\Response + * @param int $id + * + * @return \Illuminate\Http\JsonResponse + * @throws \Illuminate\Validation\ValidationException */ - public function update() + public function update(int $id) { - $customer = auth($this->guard)->user(); + if (request()->input('address1') && ! is_array(request()->input('address1'))) { + return response()->json([ + 'message' => 'address1 must be an array.', + ]); + } request()->merge(['address1' => implode(PHP_EOL, array_filter(request()->input('address1')))]); $this->validate(request(), [ 'address1' => 'string|required', - 'country' => 'string|required', - 'state' => 'string|required', - 'city' => 'string|required', + 'company' => 'string|nullable', + 'vat_id' => 'string|nullable', + 'country' => 'string|required', + 'state' => 'string|nullable', + 'city' => 'string|required', 'postcode' => 'required', - 'phone' => 'required', + 'phone' => 'required', ]); - $this->customerAddressRepository->update(request()->all(), request()->input('id')); + $customerAddress = $this->customerAddressRepository->update(request()->all(), $id); return response()->json([ 'message' => 'Your address has been updated successfully.', - 'data' => new CustomerAddressResource($this->customerAddressRepository->find(request()->input('id'))), + 'data' => new CustomerAddressResource($customerAddress), ]); } } \ No newline at end of file diff --git a/packages/Webkul/API/Http/Resources/Customer/CustomerAddress.php b/packages/Webkul/API/Http/Resources/Customer/CustomerAddress.php index 6538496c0..8c9887b1e 100644 --- a/packages/Webkul/API/Http/Resources/Customer/CustomerAddress.php +++ b/packages/Webkul/API/Http/Resources/Customer/CustomerAddress.php @@ -19,6 +19,7 @@ class CustomerAddress extends JsonResource 'first_name' => $this->first_name, 'last_name' => $this->last_name, 'company_name' => $this->company_name, + 'vat_id' => $this->vat_id, 'address1' => explode(PHP_EOL, $this->address1), 'country' => $this->country, 'country_name' => core()->country_name($this->country), @@ -26,6 +27,7 @@ class CustomerAddress extends JsonResource 'city' => $this->city, 'postcode' => $this->postcode, 'phone' => $this->phone, + 'is_default' => $this->default_address, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at, ]; diff --git a/packages/Webkul/Core/src/Models/Address.php b/packages/Webkul/Core/src/Models/Address.php index fcbb7a3e6..f66279332 100644 --- a/packages/Webkul/Core/src/Models/Address.php +++ b/packages/Webkul/Core/src/Models/Address.php @@ -72,6 +72,7 @@ abstract class Address extends Model implements AddressContract protected $casts = [ 'additional' => 'array', + 'default_address' => 'boolean', ]; /** From 4994b230bbebaf7c75b8ed0daeeac488738d306e Mon Sep 17 00:00:00 2001 From: Devansh <68321766+devansh-webkul@users.noreply.github.com> Date: Fri, 26 Feb 2021 17:28:51 +0530 Subject: [PATCH 3/3] Open collective temp logo added till auto fix --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 059c7c09a..9d858860c 100755 --- a/README.md +++ b/README.md @@ -157,4 +157,7 @@ Thank you to all our backers! 🙏 Support this project by becoming a sponsor. Your logo will show up here with a link to your website. - + + + +