Files
portal/app/Classes/Modules/Orders/ControllersLogic/CreateOrderLogic.php
T
2021-07-23 15:07:05 +08:00

41 lines
1.2 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\Processors\CreateOrderProcessor;
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 CreateOrderLogic extends AbstractControllerLogic
{
private $createOrderProcessor;
public function __construct( CreateOrderProcessor $createsOrderProcessor)
{
$this->createOrderProcessor = $createsOrderProcessor;
}
protected function notification():array {
return [
'title' => 'Created Order',
'message' => 'You have successfully created a new Order'
];
}
public function logic(Request $request) : JsonResponse {
$order = $this->createOrderProcessor->execute($request);
return $this->resourceResponse(new OrderResource($order));
}
}