From 5b5006b809cb05b069e602f2687f4c33a55e36aa Mon Sep 17 00:00:00 2001 From: prashant-webkul Date: Thu, 22 Nov 2018 20:21:37 +0530 Subject: [PATCH] Customer Address API for CRUD and getting and making the default address is complete --- .../Customer/AddressController.php | 40 ++++++++++++++----- packages/Webkul/API/Http/api.php | 10 +++-- .../Admin/src/DataGrids/AttributeDataGrid.php | 1 - .../account/address/create.blade.php | 8 ++-- 4 files changed, 42 insertions(+), 17 deletions(-) diff --git a/packages/Webkul/API/Http/Controllers/Customer/AddressController.php b/packages/Webkul/API/Http/Controllers/Customer/AddressController.php index 9a8cdfd3a..850ad197a 100644 --- a/packages/Webkul/API/Http/Controllers/Customer/AddressController.php +++ b/packages/Webkul/API/Http/Controllers/Customer/AddressController.php @@ -24,6 +24,8 @@ class AddressController extends Controller public function __construct(CustomerAddress $customerAddress) { + $this->middleware('customer'); + $this->customerAddress = $customerAddress; if(auth()->guard('customer')->check()) { @@ -38,7 +40,7 @@ class AddressController extends Controller * * @return response JSON */ - public function getAddress() { + public function get() { if($this->customer == false) { return response()->json($this->customer, 401); } else { @@ -48,7 +50,7 @@ class AddressController extends Controller } } - public function getDefaultAddress() { + public function getDefault() { if($this->customer == false) { return response()->json($this->customer, 401); } else { @@ -62,7 +64,7 @@ class AddressController extends Controller } } - public function createAddress() { + public function create() { $data = request()->all(); $validator = Validator::make(request()->all(), [ @@ -86,14 +88,34 @@ class AddressController extends Controller $data['default_address'] = 1; } - if($this->address->create($data)) { - session()->flash('success', 'Address have been successfully added.'); + $result = $this->customerAddress->create($data); - return redirect()->route($this->_config['redirect']); + if($result) { + return response()->json(true, 200); } else { - session()->flash('error', 'Address cannot be added.'); - - return redirect()->back(); + return response()->json(false, 200); } } + + public function delete($id) { + $result = $this->customerAddress->delete($id); + + return response()->json($result, 200); + } + + public function makeDefault($id) { + $defaultAddress = $this->customer->default_address; + + if($defaultAddress != null && $defaultAddress->count() > 0) { + $defaultAddress->update(['default_address' => 0]); + } + + if($this->customerAddress->find($id)->default_address == 1) { + return response()->json(false, 200); + } + + $result = $this->customerAddress->update(['default_address' => 1], $id); + + return response()->json($result, 200); + } } \ No newline at end of file diff --git a/packages/Webkul/API/Http/api.php b/packages/Webkul/API/Http/api.php index 92be9e123..9dc7abf1e 100644 --- a/packages/Webkul/API/Http/api.php +++ b/packages/Webkul/API/Http/api.php @@ -14,10 +14,14 @@ Route::group(['namespace' => 'Webkul\API\Http\Controllers\Customer', 'prefix' => Route::get('get/wishlist', 'WishlistController@getWishlist'); //address - Route::get('get/address', 'AddressController@getAddress'); - Route::get('get/default/address', 'AddressController@getDefaultAddress'); + Route::get('get/address', 'AddressController@get'); + Route::get('get/default/address', 'AddressController@getDefault'); - Route::post('create/address', 'AddressController@createAddress'); + Route::post('create/address', 'AddressController@create'); + + Route::put('make/default/address/{id}', 'AddressController@makeDefault'); + + Route::delete('delete/address/{id}', 'AddressController@delete'); }); Route::group(['namespace' => 'Webkul\API\Http\Controllers\Shop', 'prefix' => 'api/cart'], function ($router) { diff --git a/packages/Webkul/Admin/src/DataGrids/AttributeDataGrid.php b/packages/Webkul/Admin/src/DataGrids/AttributeDataGrid.php index 50a5dd83f..851154410 100644 --- a/packages/Webkul/Admin/src/DataGrids/AttributeDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/AttributeDataGrid.php @@ -5,7 +5,6 @@ namespace Webkul\Admin\DataGrids; use Illuminate\View\View; use Webkul\Ui\DataGrid\Facades\DataGrid; - /** * Attributes DataGrid * diff --git a/packages/Webkul/Shop/src/Resources/views/customers/account/address/create.blade.php b/packages/Webkul/Shop/src/Resources/views/customers/account/address/create.blade.php index 3ab8ef375..72de71a59 100644 --- a/packages/Webkul/Shop/src/Resources/views/customers/account/address/create.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/customers/account/address/create.blade.php @@ -16,7 +16,7 @@ {{ __('shop::app.customer.account.address.create.title') }} - +