| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | <?php/** * @copyright  Vertex. All rights reserved.  https://www.vertexinc.com/ * @author     Mediotype                     https://www.mediotype.com/ */namespace Vertex\Tax\Model\TaxQuote;use Magento\Store\Model\ScopeInterface;use Vertex\Mapper\QuoteRequestMapperInterface;use Vertex\Services\Quote\RequestInterface;use Vertex\Tax\Model\Api\Utility\MapperFactoryProxy;/** * Generates a cache storage key for a Quotation Request */class CacheKeyGenerator{    /** @var MapperFactoryProxy */    private $mapperFactory;    /**     * @param MapperFactoryProxy $mapperFactory     */    public function __construct(MapperFactoryProxy $mapperFactory)    {        $this->mapperFactory = $mapperFactory;    }    /**     * Convert a Tax Quote Request into a string for caching     *     * @param RequestInterface $request     * @param string|null $scopeCode Store ID     * @param string $scopeType Scope Type     * @return string     * @throws \Vertex\Exception\ValidationException     * @throws \Vertex\Exception\ConfigurationException     */    public function generateCacheKey(        RequestInterface $request,        $scopeCode = null,        $scopeType = ScopeInterface::SCOPE_STORE    ) {        /** @var QuoteRequestMapperInterface $mapper */        $mapper = $this->mapperFactory->getForClass(RequestInterface::class, $scopeCode, $scopeType);        return sha1(json_encode($mapper->map($request)));    }}
 |