Files
izyim/app/Classes/Modules/ControllersLogic/Orders/UpdateOrderStepLogic.php
T
2019-03-04 03:01:20 +08:00

51 lines
1.4 KiB
PHP

<?php
namespace App\Classes\Modules\ControllersLogic\Orders;
use App\Classes\Modules\Accounts\Exceptions\CannotCreateOrderException;
use App\Classes\Modules\ControllerLogic\Exceptions\InternalServerErrorException;
use App\Classes\Modules\Orders\DataTransferObjects\OrderObject;
use App\Classes\Modules\Orders\DataTransferObjects\StepObject;
use App\Classes\Modules\Orders\Services\CreatesOrder;
use App\Classes\Modules\Orders\Services\UpdatesOrderSteps;
use App\Models\Order;
use Illuminate\Http\Request;
class UpdateOrderStepLogic
{
/** @var Order */
private $repository;
/** @var UpdatesOrderSteps */
private $updateOrderSteps;
/**
* UpdateOrderStepLogic constructor.
* @param Order $repository
* @param UpdatesOrderSteps $updateOrderSteps
*/
public function __construct(Order $repository, UpdatesOrderSteps $updateOrderSteps)
{
$this->repository = $repository;
$this->updateOrderSteps = $updateOrderSteps;
}
/**
* @param int $orderId
* @param Request $request
* @return \Illuminate\Http\JsonResponse
*/
public function execute(int $orderId, Request $request) {
$repository = $this->repository->findOrFail($orderId);
$orderObject = new OrderObject($orderId);
$stepObject = new StepObject($repository->current_step);
return $this->updateOrderSteps->execute($orderObject, $stepObject, $request);
}
}