12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- <?php
- namespace App\Http\Controllers\Front;
- use App\Shop\Couriers\Repositories\Interfaces\CourierRepositoryInterface;
- use App\Shop\Customers\Repositories\CustomerRepository;
- use App\Shop\Customers\Repositories\Interfaces\CustomerRepositoryInterface;
- use App\Http\Controllers\Controller;
- use App\Shop\Orders\Order;
- use App\Shop\Orders\Transformers\OrderTransformable;
- class AccountsController extends Controller
- {
- use OrderTransformable;
- /**
- * @var CustomerRepositoryInterface
- */
- private $customerRepo;
- /**
- * @var CourierRepositoryInterface
- */
- private $courierRepo;
- /**
- * AccountsController constructor.
- *
- * @param CourierRepositoryInterface $courierRepository
- * @param CustomerRepositoryInterface $customerRepository
- */
- public function __construct(
- CourierRepositoryInterface $courierRepository,
- CustomerRepositoryInterface $customerRepository
- ) {
- $this->customerRepo = $customerRepository;
- $this->courierRepo = $courierRepository;
- }
- public function index()
- {
- $customer = $this->customerRepo->findCustomerById(auth()->user()->id);
- $customerRepo = new CustomerRepository($customer);
- $orders = $customerRepo->findOrders(['*'], 'created_at');
- $orders->transform(function (Order $order) {
- return $this->transformOrder($order);
- });
- $orders->load('products');
- $addresses = $customerRepo->findAddresses();
- return view('front.accounts', [
- 'customer' => $customer,
- 'orders' => $this->customerRepo->paginateArrayResults($orders->toArray(), 15),
- 'addresses' => $addresses
- ]);
- }
- }
|