CourierController.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. namespace App\Http\Controllers\Admin\Couriers;
  3. use App\Shop\Couriers\Repositories\CourierRepository;
  4. use App\Shop\Couriers\Repositories\Interfaces\CourierRepositoryInterface;
  5. use App\Shop\Couriers\Requests\CreateCourierRequest;
  6. use App\Shop\Couriers\Requests\UpdateCourierRequest;
  7. use App\Http\Controllers\Controller;
  8. class CourierController extends Controller
  9. {
  10. /**
  11. * @var CourierRepositoryInterface
  12. */
  13. private $courierRepo;
  14. /**
  15. * CourierController constructor.
  16. * @param CourierRepositoryInterface $courierRepository
  17. */
  18. public function __construct(CourierRepositoryInterface $courierRepository)
  19. {
  20. $this->courierRepo = $courierRepository;
  21. }
  22. /**
  23. * Display a listing of the resource.
  24. *
  25. * @return \Illuminate\Http\Response
  26. */
  27. public function index()
  28. {
  29. return view('admin.couriers.list', ['couriers' => $this->courierRepo->listCouriers('name', 'asc')]);
  30. }
  31. /**
  32. * Show the form for creating a new resource.
  33. *
  34. * @return \Illuminate\Http\Response
  35. */
  36. public function create()
  37. {
  38. return view('admin.couriers.create');
  39. }
  40. /**
  41. * Store a newly created resource in storage.
  42. *
  43. * @param CreateCourierRequest $request
  44. * @return \Illuminate\Http\Response
  45. */
  46. public function store(CreateCourierRequest $request)
  47. {
  48. $this->courierRepo->createCourier($request->all());
  49. $request->session()->flash('message', 'Create successful');
  50. return redirect()->route('admin.couriers.index');
  51. }
  52. /**
  53. * Show the form for editing the specified resource.
  54. *
  55. * @param int $id
  56. * @return \Illuminate\Http\Response
  57. */
  58. public function edit(int $id)
  59. {
  60. return view('admin.couriers.edit', ['courier' => $this->courierRepo->findCourierById($id)]);
  61. }
  62. /**
  63. * Update the specified resource in storage.
  64. *
  65. * @param UpdateCourierRequest $request
  66. * @param int $id
  67. * @return \Illuminate\Http\Response
  68. */
  69. public function update(UpdateCourierRequest $request, $id)
  70. {
  71. $courier = $this->courierRepo->findCourierById($id);
  72. $update = new CourierRepository($courier);
  73. $update->updateCourier($request->all());
  74. $request->session()->flash('message', 'Update successful');
  75. return redirect()->route('admin.couriers.edit', $id);
  76. }
  77. /**
  78. * Remove the specified resource from storage.
  79. *
  80. * @param int $id
  81. * @return \Illuminate\Http\Response
  82. */
  83. public function destroy(int $id)
  84. {
  85. $courier = $this->courierRepo->findCourierById($id);
  86. $courierRepo = new CourierRepository($courier);
  87. $courierRepo->delete();
  88. request()->session()->flash('message', 'Delete successful');
  89. return redirect()->route('admin.couriers.index');
  90. }
  91. }