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

30 lines
839 B
PHP

<?php
namespace App\Classes\Modules\Orders\Services\Steps;
use App\Classes\Modules\Orders\DataTransferObjects\OrderObject;
use App\Classes\Modules\Orders\DataTransferObjects\StepObject;
use App\Classes\Modules\Orders\Processors\StepProcessMapper;
use App\Classes\ValueObjects\Constants\OrderSteps;
use Illuminate\Http\Request;
class UpdatesOrderSteps
{
/**
* @param OrderObject $order
* @param StepObject $step
* @param Request $request
* @return mixed
* @throws \ReflectionException
*/
public function execute(OrderObject $order, StepObject $step, Request $request) {
$class = OrderSteps::STEP_PROCESSOR[$step->getReferenceId()];
$arguments = (new StepProcessMapper())->map($class, $request->all());
return (new $class())->execute($order, $step,...$arguments);
}
}