Your IP : 216.73.216.220


Current Path : /var/www/www.indacotrentino.com/www/vendor/magento/module-url-rewrite/Test/Fixture/
Upload File :
Current File : /var/www/www.indacotrentino.com/www/vendor/magento/module-url-rewrite/Test/Fixture/UrlRewrite.php

<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
declare(strict_types=1);

namespace Magento\UrlRewrite\Test\Fixture;

use Magento\Framework\DataObject;
use Magento\TestFramework\Fixture\Data\ProcessorInterface;
use Magento\TestFramework\Fixture\RevertibleDataFixtureInterface;
use Magento\UrlRewrite\Model\ResourceModel\UrlRewrite as UrlRewriteResourceModel;
use Magento\UrlRewrite\Model\UrlRewriteFactory;
use Magento\UrlRewrite\Service\V1\Data\UrlRewrite as UrlRewriteDataModel;

class UrlRewrite implements RevertibleDataFixtureInterface
{
    private const DEFAULT_DATA = [
        UrlRewriteDataModel::URL_REWRITE_ID => null,
        UrlRewriteDataModel::ENTITY_ID => 0,
        UrlRewriteDataModel::ENTITY_TYPE => 'custom',
        UrlRewriteDataModel::IS_AUTOGENERATED => 0,
        UrlRewriteDataModel::REQUEST_PATH => '%uniqid%_request_path',
        UrlRewriteDataModel::TARGET_PATH => '%uniqid%_target_path',
        UrlRewriteDataModel::STORE_ID => 1,
        UrlRewriteDataModel::REDIRECT_TYPE => 0,
        UrlRewriteDataModel::DESCRIPTION => null,
        UrlRewriteDataModel::METADATA => null,
    ];
    /**
     * @var UrlRewriteFactory
     */
    private UrlRewriteFactory $urlRewriteFactory;

    /**
     * @var UrlRewriteResourceModel
     */
    private UrlRewriteResourceModel $urlRewriteResourceModel;

    /**
     * @var ProcessorInterface
     */
    private ProcessorInterface $dataProcessor;

    /**
     * @inheritDoc
     */
    public function __construct(
        UrlRewriteFactory $urlRewriteFactory,
        UrlRewriteResourceModel $urlRewriteResourceModel,
        ProcessorInterface $dataProcessor
    ) {
        $this->urlRewriteFactory = $urlRewriteFactory;
        $this->urlRewriteResourceModel = $urlRewriteResourceModel;
        $this->dataProcessor = $dataProcessor;
    }

    /**
     * @inheritDoc
     */
    public function apply(array $data = []): ?DataObject
    {
        $data = $this->dataProcessor->process($this, array_merge(self::DEFAULT_DATA, $data));
        $urlRewrite = $this->urlRewriteFactory->create();
        $urlRewrite->setData($data);
        $this->urlRewriteResourceModel->save($urlRewrite);
        return $urlRewrite;
    }

    /**
     * @inheritDoc
     */
    public function revert(DataObject $data): void
    {
        $urlRewrite = $this->urlRewriteFactory->create();
        $this->urlRewriteResourceModel->load($urlRewrite, $data->getId());
        if ($urlRewrite->getId()) {
            $this->urlRewriteResourceModel->delete($urlRewrite);
        }
    }
}