Files
izyim/app/Classes/Modules/Orders/Services/CreatesOrderSteps.php
T
2019-03-19 17:11:21 +08:00

49 lines
1.1 KiB
PHP
Executable File

<?php
namespace App\Classes\Modules\Orders\Services;
use App\Classes\Modules\Accounts\Exceptions\CannotCreateOrderStepsException;
use App\Classes\Modules\Orders\DataTransferObjects\OrderObject;
use App\Models\Order;
class CreatesOrderSteps
{
/** @var Order */
private $repository;
/**
* CompletesOrderStep constructor.
* @param Order $repository
*/
public function __construct(Order $repository)
{
$this->repository = $repository;
}
/**
* @param OrderObject $order
* @param array $orderSteps
* @throws CannotCreateOrderStepsException
*/
public function execute(OrderObject $order, array $orderSteps){
try {
/** @var Order $repository */
$repository = $this->repository->findOrFail($order->getOrderId());
$repository->orderSteps()->delete();
$repository->orderSteps()->createMany($orderSteps);
} catch (\Exception $exception){
throw new CannotCreateOrderStepsException($exception->getMessage());
}
}
}