| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 | <?phpnamespace App\Http\Controllers\Admin\Couriers;use App\Shop\Couriers\Repositories\CourierRepository;use App\Shop\Couriers\Repositories\Interfaces\CourierRepositoryInterface;use App\Shop\Couriers\Requests\CreateCourierRequest;use App\Shop\Couriers\Requests\UpdateCourierRequest;use App\Http\Controllers\Controller;class CourierController extends Controller{    /**     * @var CourierRepositoryInterface     */    private $courierRepo;    /**     * CourierController constructor.     * @param CourierRepositoryInterface $courierRepository     */    public function __construct(CourierRepositoryInterface $courierRepository)    {        $this->courierRepo = $courierRepository;    }    /**     * Display a listing of the resource.     *     * @return \Illuminate\Http\Response     */    public function index()    {        return view('admin.couriers.list', ['couriers' => $this->courierRepo->listCouriers('name', 'asc')]);    }    /**     * Show the form for creating a new resource.     *     * @return \Illuminate\Http\Response     */    public function create()    {        return view('admin.couriers.create');    }    /**     * Store a newly created resource in storage.     *     * @param  CreateCourierRequest $request     * @return \Illuminate\Http\Response     */    public function store(CreateCourierRequest $request)    {        $this->courierRepo->createCourier($request->all());        $request->session()->flash('message', 'Create successful');        return redirect()->route('admin.couriers.index');    }    /**     * Show the form for editing the specified resource.     *     * @param  int  $id     * @return \Illuminate\Http\Response     */    public function edit(int $id)    {        return view('admin.couriers.edit', ['courier' => $this->courierRepo->findCourierById($id)]);    }    /**     * Update the specified resource in storage.     *     * @param  UpdateCourierRequest  $request     * @param  int  $id     * @return \Illuminate\Http\Response     */    public function update(UpdateCourierRequest $request, $id)    {        $courier = $this->courierRepo->findCourierById($id);        $update = new CourierRepository($courier);        $update->updateCourier($request->all());        $request->session()->flash('message', 'Update successful');        return redirect()->route('admin.couriers.edit', $id);    }    /**     * Remove the specified resource from storage.     *     * @param  int  $id     * @return \Illuminate\Http\Response     */    public function destroy(int $id)    {        $courier = $this->courierRepo->findCourierById($id);        $courierRepo = new CourierRepository($courier);        $courierRepo->delete();        request()->session()->flash('message', 'Delete successful');        return redirect()->route('admin.couriers.index');    }}
 |