Files
izyim/app/Classes/Modules/ControllersLogic/Orders/UpdateOrderStepLogic.php
T
Omair Saleh 43a9e0ca03 large commit
2019-05-18 12:14:31 +08:00

47 lines
1.3 KiB
PHP

<?php
namespace App\Classes\Modules\ControllersLogic\Orders;
use App\Classes\Modules\Orders\DataTransferObjects\OrderObject;
use App\Classes\Modules\Orders\DataTransferObjects\StepObject;
use App\Classes\Modules\Orders\Services\Steps\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
* @throws \ReflectionException
*/
public function execute(int $orderId, Request $request) {
$repository = $this->repository->findOrFail($orderId);
$orderObject = new OrderObject($orderId);
$stepObject = new StepObject($repository->current_step, $request->input('complete_date'));
return $this->updateOrderSteps->execute($orderObject, $stepObject, $request);
}
}