Orders APIs WIP

This commit is contained in:
Fairuz
2021-07-15 10:33:12 +08:00
parent 562ea1ff7b
commit a7eec812c9
11 changed files with 46 additions and 32 deletions
@@ -0,0 +1,45 @@
<?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));
}
}
@@ -1,31 +0,0 @@
<?php
namespace App\Classes\Modules\OrderSteps\Processors;
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 Illuminate\Http\Request;
class CreateOrderStepsProcessor
{
private $canCreateOrder;
private $createsOrder;
public function __construct(CanCreateOrder $canCreateOrder, CreatesOrder $createsOrder)
{
$this->canCreateOrder = $canCreateOrder;
$this->createsOrder = $createsOrder;
}
public function execute(Request $request) {
$order_object = new OrderObject();
$this->canCreateOrder->passes($order_object);
return $this->createsOrder->execute($request);
}
}
@@ -11,7 +11,7 @@ use App\Classes\ValueObjects\Constants\OrderSteps;
use App\Models\Order;
use App\Models\OrderStep;
class UpdatesOrderCurrentStep
class UpdatesOrderCurrentStepProcessor
{
private $canUpdateCurrentStep;