mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/portal.git
synced 2026-08-21 13:34:08 +00:00
45 lines
1.5 KiB
PHP
45 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Classes\Modules\Orders\ControllersLogic;
|
|
|
|
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
|
use App\Classes\Modules\Orders\DataTransferObjects\OrderObject;
|
|
use App\Classes\Modules\Orders\Services\CreatesOrder;
|
|
use App\Classes\Modules\Orders\Standards\Rules\CanCreateOrder;
|
|
use App\Classes\ValueObjects\Constants\OrderStatus;
|
|
use App\Classes\ValueObjects\Constants\OrderSteps;
|
|
use App\Classes\ValueObjects\Constants\OrderType;
|
|
use App\Http\Resources\OrderResource;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\JsonResponse;
|
|
|
|
class CompletesOrderStepLogic extends AbstractControllerLogic
|
|
{
|
|
|
|
private $canCreateOrder;
|
|
|
|
private $createsOrder;
|
|
|
|
public function __construct(CanCreateOrder $canCreateOrder, CreatesOrder $createsOrder)
|
|
{
|
|
$this->canCreateOrder = $canCreateOrder;
|
|
$this->createsOrder = $createsOrder;
|
|
}
|
|
|
|
protected function notification():array {
|
|
return [
|
|
'title' => 'Created Order',
|
|
'message' => 'You have successfully created a new Order'
|
|
];
|
|
}
|
|
|
|
public function logic(Request $request) : JsonResponse {
|
|
$order_object = new OrderObject($request->get('company_module_id'), '', '', OrderType::SHARED_CONTAINER, OrderStatus::PROCESSING, OrderSteps::PROCESSING);
|
|
|
|
$this->canCreateOrder->passes($order_object);
|
|
|
|
$order = $this->createsOrder->execute($order_object);
|
|
|
|
return $this->resourceResponse(new OrderResource($order));
|
|
}
|
|
} |