TaxAreaLookupProxy.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. /**
  3. * @copyright Vertex. All rights reserved. https://www.vertexinc.com/
  4. * @author Mediotype https://www.mediotype.com/
  5. */
  6. namespace Vertex\Tax\Service;
  7. use Magento\Store\Model\ScopeInterface;
  8. use Vertex\Services\TaxAreaLookup\RequestInterface;
  9. use Vertex\Tax\Api\TaxAreaLookupInterface;
  10. use Vertex\Tax\Model\Api\Logger;
  11. use Vertex\Tax\Model\Api\Service\TaxAreaLookupBuilder;
  12. /**
  13. * Default implementation of {@see TaxAreaLookupInterface}
  14. */
  15. class TaxAreaLookupProxy implements TaxAreaLookupInterface
  16. {
  17. /** @var Logger */
  18. private $logger;
  19. /** @var TaxAreaLookupBuilder */
  20. private $lookupBuilder;
  21. /**
  22. * @param Logger $logger
  23. * @param TaxAreaLookupBuilder $lookupBuilder
  24. */
  25. public function __construct(Logger $logger, TaxAreaLookupBuilder $lookupBuilder)
  26. {
  27. $this->logger = $logger;
  28. $this->lookupBuilder = $lookupBuilder;
  29. }
  30. /**
  31. * @inheritdoc
  32. */
  33. public function lookup(RequestInterface $request, $scopeCode = null, $scopeType = ScopeInterface::SCOPE_STORE)
  34. {
  35. $taxAreaLookup = $this->lookupBuilder
  36. ->setScopeCode($scopeCode)
  37. ->setScopeType($scopeType)
  38. ->build();
  39. return $this->logger->wrapCall(
  40. function () use ($taxAreaLookup, $request) {
  41. return $taxAreaLookup->lookup($request);
  42. },
  43. 'tax_area_lookup'
  44. );
  45. }
  46. }