OrderTransformable.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. namespace App\Shop\Orders\Transformers;
  3. use App\Shop\Addresses\Address;
  4. use App\Shop\Addresses\Repositories\AddressRepository;
  5. use App\Shop\Couriers\Courier;
  6. use App\Shop\Couriers\Repositories\CourierRepository;
  7. use App\Shop\Customers\Customer;
  8. use App\Shop\Customers\Repositories\CustomerRepository;
  9. use App\Shop\Orders\Order;
  10. use App\Shop\OrderStatuses\OrderStatus;
  11. use App\Shop\OrderStatuses\Repositories\OrderStatusRepository;
  12. trait OrderTransformable
  13. {
  14. /**
  15. * Transform the order
  16. *
  17. * @param Order $order
  18. * @return Order
  19. */
  20. protected function transformOrder(Order $order) : Order
  21. {
  22. $courierRepo = new CourierRepository(new Courier());
  23. $order->courier = $courierRepo->findCourierById($order->courier_id);
  24. $customerRepo = new CustomerRepository(new Customer());
  25. $order->customer = $customerRepo->findCustomerById($order->customer_id);
  26. $addressRepo = new AddressRepository(new Address());
  27. $order->address = $addressRepo->findAddressById($order->address_id);
  28. $orderStatusRepo = new OrderStatusRepository(new OrderStatus());
  29. $order->status = $orderStatusRepo->findOrderStatusById($order->order_status_id);
  30. return $order;
  31. }
  32. }