OrderStatusController.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. namespace App\Http\Controllers\Admin\Orders;
  3. use App\Shop\OrderStatuses\Repositories\Interfaces\OrderStatusRepositoryInterface;
  4. use App\Shop\OrderStatuses\Repositories\OrderStatusRepository;
  5. use App\Shop\OrderStatuses\Requests\CreateOrderStatusRequest;
  6. use App\Shop\OrderStatuses\Requests\UpdateOrderStatusRequest;
  7. use Illuminate\Database\QueryException;
  8. use Illuminate\Http\Request;
  9. use App\Http\Controllers\Controller;
  10. class OrderStatusController extends Controller
  11. {
  12. private $orderStatuses;
  13. public function __construct(OrderStatusRepositoryInterface $orderStatusRepository)
  14. {
  15. $this->orderStatuses = $orderStatusRepository;
  16. }
  17. /**
  18. * Display a listing of the resource.
  19. *
  20. * @return \Illuminate\Http\Response
  21. */
  22. public function index()
  23. {
  24. return view('admin.order-statuses.list', ['orderStatuses' => $this->orderStatuses->listOrderStatuses()]);
  25. }
  26. /**
  27. * Show the form for creating a new resource.
  28. *
  29. * @return \Illuminate\Http\Response
  30. */
  31. public function create()
  32. {
  33. return view('admin.order-statuses.create');
  34. }
  35. /**
  36. * Store a newly created resource in storage.
  37. *
  38. * @param CreateOrderStatusRequest $request
  39. * @return \Illuminate\Http\Response
  40. */
  41. public function store(CreateOrderStatusRequest $request)
  42. {
  43. $this->orderStatuses->createOrderStatus($request->except('_token', '_method'));
  44. $request->session()->flash('message', 'Create successful');
  45. return redirect()->route('admin.order-statuses.index');
  46. }
  47. /**
  48. * Show the form for editing the specified resource.
  49. *
  50. * @param int $id
  51. * @return \Illuminate\Http\Response
  52. */
  53. public function edit(int $id)
  54. {
  55. return view('admin.order-statuses.edit', ['orderStatus' => $this->orderStatuses->findOrderStatusById($id)]);
  56. }
  57. /**
  58. * Update the specified resource in storage.
  59. *
  60. * @param UpdateOrderStatusRequest $request
  61. * @param int $id
  62. * @return \Illuminate\Http\Response
  63. */
  64. public function update(UpdateOrderStatusRequest $request, int $id)
  65. {
  66. $orderStatus = $this->orderStatuses->findOrderStatusById($id);
  67. $update = new OrderStatusRepository($orderStatus);
  68. $update->updateOrderStatus($request->all());
  69. $request->session()->flash('message', 'Update successful');
  70. return redirect()->route('admin.order-statuses.edit', $id);
  71. }
  72. /**
  73. * Remove the specified resource from storage.
  74. *
  75. * @param int $id
  76. * @return \Illuminate\Http\Response
  77. */
  78. public function destroy(int $id)
  79. {
  80. $this->orderStatuses->findOrderStatusById($id)->delete();
  81. request()->session()->flash('message', 'Delete successful');
  82. return redirect()->route('admin.order-statuses.index');
  83. }
  84. }