diff --git a/packages/Webkul/API/Http/Controllers/Shop/OrderController.php b/packages/Webkul/API/Http/Controllers/Shop/OrderController.php new file mode 100644 index 000000000..fba099103 --- /dev/null +++ b/packages/Webkul/API/Http/Controllers/Shop/OrderController.php @@ -0,0 +1,73 @@ +guard = request()->has('token') ? 'api' : 'customer'; + + $this->_config = request('_config'); + + if (isset($this->_config['authorization_required']) && $this->_config['authorization_required']) { + auth()->setDefaultDriver($this->guard); + + $this->middleware('auth:' . $this->guard); + } + + if ($this->_config) { + $this->repository = app($this->_config['repository']); + } + } + + /** + * Cancel customer's order. + * + * @return \Illuminate\Http\Response + */ + public function cancel($id) + { + $order = auth()->guard($this->guard)->user()->all_orders()->find($id); + + if ($order && $this->repository->cancel($order)) { + return response()->json([ + 'status' => true, + 'message' => __('admin::app.response.cancel-success', [ + 'name' => 'Order' + ]), + ]); + } + + return response()->json([ + 'status' => false, + 'message' => __('shop::app.common.error'), + ]); + } +} diff --git a/packages/Webkul/API/Http/routes.php b/packages/Webkul/API/Http/routes.php index 90ded573b..a8a9b0b67 100755 --- a/packages/Webkul/API/Http/routes.php +++ b/packages/Webkul/API/Http/routes.php @@ -200,6 +200,11 @@ Route::group(['prefix' => 'api'], function ($router) { 'authorization_required' => true ]); + Route::post('orders/{id}/cancel', 'OrderController@cancel')->defaults('_config', [ + 'repository' => 'Webkul\Sales\Repositories\OrderRepository', + 'resource' => 'Webkul\API\Http\Resources\Sales\Order', + 'authorization_required' => true + ]); //Invoice routes Route::get('invoices', 'InvoiceController@index')->defaults('_config', [ diff --git a/packages/Webkul/Shop/src/Resources/lang/en/app.php b/packages/Webkul/Shop/src/Resources/lang/en/app.php index b81aa649e..2374486a2 100755 --- a/packages/Webkul/Shop/src/Resources/lang/en/app.php +++ b/packages/Webkul/Shop/src/Resources/lang/en/app.php @@ -289,7 +289,7 @@ return [ 'closed' => 'Closed', 'pending' => 'Pending', 'pending-payment' => 'Pending Payment', - 'fraud' => 'Fraud' + 'fraud' => 'Fraud', ], 'view' => [