StreamEventResponseMapper.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. /**
  3. * Refer to LICENSE.txt distributed with the Temando Shipping module for notice of license
  4. */
  5. namespace Temando\Shipping\Rest\EntityMapper;
  6. use Temando\Shipping\Model\StreamEventInterface;
  7. use Temando\Shipping\Model\StreamEventInterfaceFactory;
  8. use Temando\Shipping\Rest\Response\DataObject\StreamEvent;
  9. /**
  10. * Map API data to application data object
  11. *
  12. * @package Temando\Shipping\Rest
  13. * @author Benjamin Heuer <benjamin.heuer@netresearch.de>
  14. * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
  15. * @link http://www.temando.com/
  16. */
  17. class StreamEventResponseMapper
  18. {
  19. /**
  20. * @var StreamEventInterfaceFactory
  21. */
  22. private $streamEventFactory;
  23. /**
  24. * StreamEventResponseMapper constructor.
  25. *
  26. * @param StreamEventInterfaceFactory $streamEventFactory
  27. */
  28. public function __construct(StreamEventInterfaceFactory $streamEventFactory)
  29. {
  30. $this->streamEventFactory = $streamEventFactory;
  31. }
  32. /**
  33. * @param StreamEvent $apiStreamEvent
  34. * @return StreamEventInterface
  35. */
  36. public function map(StreamEvent $apiStreamEvent)
  37. {
  38. $event = $this->streamEventFactory->create(['data' => [
  39. StreamEventInterface::EVENT_ID => $apiStreamEvent->getId(),
  40. StreamEventInterface::EVENT_TYPE => $apiStreamEvent->getAttributes()->getEvent(),
  41. StreamEventInterface::ENTITY_TYPE => $apiStreamEvent->getAttributes()->getType(),
  42. StreamEventInterface::ENTITY_ID => $apiStreamEvent->getAttributes()->getId(),
  43. ]]);
  44. return $event;
  45. }
  46. }