Guest User

Untitled

a guest
Nov 21st, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. <?php
  2. class OrderService
  3. {
  4. private $itemService;
  5.  
  6. public function __construct(ItemService $itemService)
  7. {
  8. $this->itemService = $itemService;
  9. }
  10.  
  11. public function create(OrderCreationDto $context)
  12. {
  13. $order = new Order();
  14. $order->setCustomerId($context->customerId);
  15. $order->setPartnerId($context->partnerId);
  16. $order->setDeliveryAddress(new Address($context->address));
  17. $order->addItems($this->createOrderItems($context->products));
  18. return $order;
  19. }
  20.  
  21. private function createOrderItems(array $products)
  22. {
  23. $request = $this->getItemRequestData($products);
  24. $items = $this->itemService->createAll($request);
  25. return array_map(function (array $product) use ($items) {
  26. $item = $items->get($product->id, $product->price);
  27. $orderItem = new OrderItem();
  28. $orderItem->setItemId($item->getId());
  29. $orderItem->setProductId($product->id);
  30. return $orderItem;
  31. }, $products);
  32. }
  33.  
  34. private function getItemRequestData(array $products)
  35. {
  36. $data = array();
  37. foreach ($products as $product) {
  38. $request = new CreateItemRequestDto($product->id, $product->price);
  39. array_push($data, $request);
  40. }
  41. return $data;
  42. }
  43. }
Add Comment
Please, Sign In to add comment