WIP - Order steps & remaining APIs

This commit is contained in:
Fairuz
2021-07-22 14:28:02 +08:00
parent adf9896410
commit 3dfa087831
8 changed files with 56 additions and 47 deletions
@@ -1,53 +1,40 @@
<?php
namespace App\Classes\Modules\Orders\Services\Steps;
namespace App\Classes\Modules\Orders\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\Services\FetchesOrder;
use App\Classes\Modules\OrderSteps\Services\FetchesOrderSteps;
use App\Classes\Modules\Orders\Standards\Rules\CanUpdateCurrentStep;
use App\Classes\Modules\OrderSteps\Processors\UpdateOrderStepsProcessor;
use App\Classes\Modules\Orders\Standards\Rules\CanConfirmOrder;
use App\Classes\Modules\OrderSteps\Processors\GenerateOrderStepsProcessor;
use App\Classes\ValueObjects\Constants\OrderStatus;
use App\Classes\ValueObjects\Constants\OrderSteps;
use App\Models\Order;
use App\Models\OrderStep;
use App\Classes\ValueObjects\Constants\OrderType;
use Illuminate\Http\Request;
class ConfirmOrderProcessor
{
private $canUpdateCurrentStep;
private $canConfirmOrder;
private $updatesCurrentStep;
private $generateOrderStepsProcessor;
private $fetchesOrder;
private $fetchesOrderSteps;
private $updateOrderStepProcessors;
public function __construct(CanUpdateCurrentStep $canUpdateCurrentStep, FetchesOrder $fetchesOrder, FetchesOrderSteps $fetchesOrderSteps, UpdatesOrderCurrentStep $updatesCurrentStep, UpdateOrderStepsProcessor $updateOrderStepProcessors)
public function __construct(CanConfirmOrder $canConfirmOrder, GenerateOrderStepsProcessor $generateOrderStepsProcessor, FetchesOrder $fetchesOrder)
{
$this->canUpdateCurrentStep = $canUpdateCurrentStep;
$this->updatesCurrentStep = $updatesCurrentStep;
$this->canConfirmOrder = $canConfirmOrder;
$this->generateOrderStepsProcessor = $generateOrderStepsProcessor;
$this->fetchesOrder = $fetchesOrder;
$this->fetchesOrderSteps = $fetchesOrderSteps;
$this->updateOrderStepProcessors = $updateOrderStepProcessors;
}
public function execute(int $orderId, string $currentStep){
public function execute(int $orderId){
$order_object = new OrderObject(0, '', '', 0, 0, $currentStep, $orderId);
$order_object = new OrderObject(0,'','',0,0, '',$orderId);
$this->canUpdateCurrentStep->passes($order_object);
$this->canConfirmOrder->passes($order_object);
$order = $this->fetchesOrder->execute(['id'=>$order_object->getId()]);
$order_steps = $this->fetchesOrderSteps->execute(['order_id'=>$order_object->getId(), 'status'=> OrderStatus::PROCESSING, 'order_by' => 'sequence', 'per_page' => 1]);
$order_object->setCurrentStep($currentStep);
$order = $this->updatesCurrentStep->execute($order, $order_object);
$this->updateOrderStepProcessors->execute($currentStep);
$this->generateOrderStepsProcessor->execute($order);
}
}