DeviceDataBuilder.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Braintree\Gateway\Request\PayPal;
  7. use Magento\Braintree\Gateway\SubjectReader;
  8. use Magento\Braintree\Observer\DataAssignObserver;
  9. use Magento\Payment\Gateway\Request\BuilderInterface;
  10. /**
  11. * Class DeviceDataBuilder
  12. */
  13. class DeviceDataBuilder implements BuilderInterface
  14. {
  15. /**
  16. * @var string
  17. */
  18. private static $deviceDataKey = 'deviceData';
  19. /**
  20. * @var SubjectReader
  21. */
  22. private $subjectReader;
  23. /**
  24. * DeviceDataBuilder constructor.
  25. * @param SubjectReader $subjectReader
  26. */
  27. public function __construct(SubjectReader $subjectReader)
  28. {
  29. $this->subjectReader = $subjectReader;
  30. }
  31. /**
  32. * @inheritdoc
  33. */
  34. public function build(array $buildSubject)
  35. {
  36. $result = [];
  37. $paymentDO = $this->subjectReader->readPayment($buildSubject);
  38. $payment = $paymentDO->getPayment();
  39. $data = $payment->getAdditionalInformation();
  40. if (!empty($data[DataAssignObserver::DEVICE_DATA])) {
  41. $result[self::$deviceDataKey] = $data[DataAssignObserver::DEVICE_DATA];
  42. }
  43. return $result;
  44. }
  45. }