Customer Address API for CRUD and getting and making the default address is complete

This commit is contained in:
prashant-webkul 2018-11-22 20:21:37 +05:30
parent 416d871cca
commit 5b5006b809
4 changed files with 42 additions and 17 deletions

View File

@ -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);
}
}

View File

@ -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) {

View File

@ -5,7 +5,6 @@ namespace Webkul\Admin\DataGrids;
use Illuminate\View\View;
use Webkul\Ui\DataGrid\Facades\DataGrid;
/**
* Attributes DataGrid
*

View File

@ -16,7 +16,7 @@
<span class="account-heading">{{ __('shop::app.customer.account.address.create.title') }}</span>
<span></span>
</div>
<form method="post" action="{{ route('customer.address.create') }}" @submit.prevent="onSubmit">
<div class="account-table-content">
@ -56,11 +56,11 @@
<div class="button-group">
<input class="btn btn-primary btn-lg" type="submit" value="{{ __('shop::app.customer.account.address.create.submit') }}">
<button class="btn btn-primary btn-lg" type="submit">
{{-- <button class="btn btn-primary btn-lg" type="submit">
{{ __('shop::app.customer.account.address.edit.submit') }}
</button>
</button> --}}
</div>
</div>
</form>