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

namespace Leadlion\AutogedalWarehouses\Controller\Adminhtml\Index;

use Leadlion\AutogedalWarehouses\Block\Warehouse as WarehouseBlock;
use Magento\Sales\Api\OrderRepositoryInterface;
use Magento\Backend\App\Action\Context;
use Magento\Framework\App\Action\HttpGetActionInterface;

class Warehouse extends \Magento\Backend\App\Action
{
    protected $_orderRepository;
    public function __construct(
        OrderRepositoryInterface $orderRepository,
        Context $context
    )
    {
        parent::__construct($context);
        $this->_orderRepository = $orderRepository;
    }

    public function execute()
    {
        $request = $this->getRequest();

        if ($request->getParam('order_id')) {
            $orderId = $request->getParam('order_id');
            $orderObject = $this->_orderRepository->get($orderId);

            $objectModified = false;
            if ($request->getParam('warehouse')) {
                $orderObject->setData(WarehouseBlock::ORDER_WAREHOUSE_KEY, $request->getParam('warehouse'));
                $objectModified = true;
            }

            if ($request->getParam('carrier')) {
                $orderObject->setData(WarehouseBlock::ORDER_CARRIER_KEY, $request->getParam('carrier'));
                $objectModified = true;
            }

            if ($objectModified) {
                $orderObject->save();
            }
        }
    }
}
