Skip to content

Commit

Permalink
Merge pull request #143 from duyler/dev
Browse files Browse the repository at this point in the history
Fix suspend state handler
  • Loading branch information
milinsky committed May 7, 2024
2 parents 1a89d23 + d5a8d56 commit 7c70a76
Show file tree
Hide file tree
Showing 23 changed files with 79 additions and 61 deletions.
6 changes: 3 additions & 3 deletions src/BusFacade.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
use Duyler\ActionBus\Dto\Log;
use Duyler\ActionBus\Dto\Result;
use Duyler\ActionBus\Dto\Trigger;
use Duyler\ActionBus\Formatter\IdFormatter;
use Duyler\ActionBus\Formatter\ActionIdFormatter;
use Duyler\ActionBus\Internal\Event\BusCompletedEvent;
use Duyler\ActionBus\Internal\Event\TriggerPushedEvent;
use Duyler\ActionBus\Service\ResultService;
Expand Down Expand Up @@ -36,13 +36,13 @@ public function run(): BusInterface
#[Override]
public function getResult(string|UnitEnum $actionId): Result
{
return $this->resultService->getResult(IdFormatter::format($actionId));
return $this->resultService->getResult(ActionIdFormatter::toString($actionId));
}

#[Override]
public function resultIsExists(string|UnitEnum $actionId): bool
{
return $this->resultService->resultIsExists(IdFormatter::format($actionId));
return $this->resultService->resultIsExists(ActionIdFormatter::toString($actionId));
}

#[Override]
Expand Down
6 changes: 3 additions & 3 deletions src/Collection/SubscriptionCollection.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

use Duyler\ActionBus\Dto\Subscription;
use Duyler\ActionBus\Enum\ResultStatus;
use Duyler\ActionBus\Formatter\IdFormatter;
use Duyler\ActionBus\Formatter\ActionIdFormatter;

use function array_flip;
use function array_intersect_key;
Expand Down Expand Up @@ -75,13 +75,13 @@ public function remove(Subscription $subscription): void

private function makeActionIdWithStatus(string $actionId, ResultStatus $status): string
{
return $actionId . IdFormatter::DELIMITER . $status->value;
return $actionId . ActionIdFormatter::DELIMITER . $status->value;
}

private function makeSubscriptionId(Subscription $subscription): string
{
return $subscription->subjectId
. IdFormatter::DELIMITER . $subscription->status->value
. ActionIdFormatter::DELIMITER . $subscription->status->value
. '@' . $subscription->actionId;
}

Expand Down
3 changes: 2 additions & 1 deletion src/Contract/State/MainSuspendStateHandlerInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@

use Duyler\ActionBus\State\Service\StateMainSuspendService;
use Duyler\ActionBus\State\StateContext;
use Duyler\ActionBus\State\Suspend;

interface MainSuspendStateHandlerInterface extends StateHandlerInterface
{
public function handle(StateMainSuspendService $stateService, StateContext $context): mixed;

public function isResumable(mixed $value): bool;
public function isResumable(Suspend $suspend, StateContext $context): bool;
}
12 changes: 6 additions & 6 deletions src/Dto/Action.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

use UnitEnum;
use Closure;
use Duyler\ActionBus\Formatter\IdFormatter;
use Duyler\ActionBus\Formatter\ActionIdFormatter;
use RecursiveArrayIterator;

readonly class Action
Expand Down Expand Up @@ -47,20 +47,20 @@ public function __construct(
/** @var array<string|int, mixed> */
public array $labels = [],
) {
$this->id = IdFormatter::format($id);
$this->id = ActionIdFormatter::toString($id);

$this->required = new RecursiveArrayIterator();

/** @var string|UnitEnum $actionId */
foreach ($required as $actionId) {
$this->required->append(IdFormatter::format($actionId));
$this->required->append(ActionIdFormatter::toString($actionId));
}

$alternatesActions = [];

/** @var string|UnitEnum $actionId */
foreach ($alternates as $actionId) {
$alternatesActions[] = IdFormatter::format($actionId);
$alternatesActions[] = ActionIdFormatter::toString($actionId);
}

$this->alternates = $alternatesActions;
Expand All @@ -69,11 +69,11 @@ public function __construct(

/** @var string|UnitEnum $actionId */
foreach ($sealed as $actionId) {
$allowActions[] = IdFormatter::format($actionId);
$allowActions[] = ActionIdFormatter::toString($actionId);
}

$this->sealed = $allowActions;

$this->triggeredOn = $triggeredOn === null ? null : IdFormatter::format($triggeredOn);
$this->triggeredOn = $triggeredOn === null ? null : ActionIdFormatter::toString($triggeredOn);
}
}
4 changes: 2 additions & 2 deletions src/Dto/ActionHandlerSubstitution.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace Duyler\ActionBus\Dto;

use Closure;
use Duyler\ActionBus\Formatter\IdFormatter;
use Duyler\ActionBus\Formatter\ActionIdFormatter;
use UnitEnum;

readonly class ActionHandlerSubstitution
Expand All @@ -18,6 +18,6 @@ public function __construct(
public array $bind = [],
public array $providers = [],
) {
$this->actionId = IdFormatter::format($actionId);
$this->actionId = ActionIdFormatter::toString($actionId);
}
}
4 changes: 2 additions & 2 deletions src/Dto/ActionResultSubstitution.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace Duyler\ActionBus\Dto;

use Duyler\ActionBus\Formatter\IdFormatter;
use Duyler\ActionBus\Formatter\ActionIdFormatter;
use UnitEnum;

readonly class ActionResultSubstitution
Expand All @@ -16,6 +16,6 @@ public function __construct(
public string $requiredContract,
public object $substitution,
) {
$this->actionId = IdFormatter::format($actionId);
$this->actionId = ActionIdFormatter::toString($actionId);
}
}
6 changes: 3 additions & 3 deletions src/Dto/Subscription.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace Duyler\ActionBus\Dto;

use Duyler\ActionBus\Enum\ResultStatus;
use Duyler\ActionBus\Formatter\IdFormatter;
use Duyler\ActionBus\Formatter\ActionIdFormatter;
use UnitEnum;

readonly class Subscription
Expand All @@ -18,7 +18,7 @@ public function __construct(
string|UnitEnum $actionId,
public ResultStatus $status = ResultStatus::Success,
) {
$this->subjectId = IdFormatter::format($subjectId);
$this->actionId = IdFormatter::format($actionId);
$this->subjectId = ActionIdFormatter::toString($subjectId);
$this->actionId = ActionIdFormatter::toString($actionId);
}
}
4 changes: 2 additions & 2 deletions src/Dto/Trigger.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace Duyler\ActionBus\Dto;

use Duyler\ActionBus\Formatter\IdFormatter;
use Duyler\ActionBus\Formatter\ActionIdFormatter;
use UnitEnum;

readonly class Trigger
Expand All @@ -16,6 +16,6 @@ public function __construct(
public ?object $data = null,
public ?string $contract = null,
) {
$this->id = IdFormatter::format($id);
$this->id = ActionIdFormatter::toString($id);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@

use UnitEnum;

final class IdFormatter
final class ActionIdFormatter
{
public const string DELIMITER = '::';

/** @var array<string, UnitEnum> */
private static array $idMap = [];

public static function format(string|UnitEnum $id): string
public static function toString(string|UnitEnum $id): string
{
if (is_string($id)) {
return $id;
Expand Down
2 changes: 0 additions & 2 deletions src/Service/ActionService.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
use Duyler\ActionBus\Action\ActionContainerProvider;
use Duyler\ActionBus\Bus\ActionRequiredIterator;
use Duyler\ActionBus\Bus\Bus;
use Duyler\ActionBus\Collection\ActionArgumentCollection;
use Duyler\ActionBus\Collection\ActionCollection;
use Duyler\ActionBus\Collection\SubscriptionCollection;
use Duyler\ActionBus\Contract\ActionSubstitutionInterface;
Expand All @@ -27,7 +26,6 @@ public function __construct(
private ActionSubstitutionInterface $actionSubstitution,
private SubscriptionCollection $subscriptionCollection,
private Bus $bus,
private ActionArgumentCollection $actionArgumentCollection,
) {}

public function addAction(Action $action): void
Expand Down
4 changes: 2 additions & 2 deletions src/State/Service/StateMainAfterService.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace Duyler\ActionBus\State\Service;

use Duyler\ActionBus\Enum\ResultStatus;
use Duyler\ActionBus\Formatter\IdFormatter;
use Duyler\ActionBus\Formatter\ActionIdFormatter;
use Duyler\ActionBus\Service\ActionService;
use Duyler\ActionBus\Service\LogService;
use Duyler\ActionBus\Service\ResultService;
Expand Down Expand Up @@ -43,7 +43,7 @@ public function __construct(

public function getActionId(): string|UnitEnum
{
return IdFormatter::reverse($this->actionId);
return ActionIdFormatter::reverse($this->actionId);
}

public function getResultData(): ?object
Expand Down
4 changes: 2 additions & 2 deletions src/State/Service/StateMainBeforeService.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

use Duyler\ActionBus\Dto\ActionHandlerSubstitution;
use Duyler\ActionBus\Dto\ActionResultSubstitution;
use Duyler\ActionBus\Formatter\IdFormatter;
use Duyler\ActionBus\Formatter\ActionIdFormatter;
use Duyler\ActionBus\Service\ActionService;
use Duyler\ActionBus\Service\LogService;
use Duyler\ActionBus\State\Service\Trait\LogServiceTrait;
Expand Down Expand Up @@ -34,6 +34,6 @@ public function substituteHandler(ActionHandlerSubstitution $handlerSubstitution

public function getActionId(): string|UnitEnum
{
return IdFormatter::reverse($this->actionId);
return ActionIdFormatter::reverse($this->actionId);
}
}
4 changes: 2 additions & 2 deletions src/State/Service/StateMainBeginService.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace Duyler\ActionBus\State\Service;

use Duyler\ActionBus\Dto\Action;
use Duyler\ActionBus\Formatter\IdFormatter;
use Duyler\ActionBus\Formatter\ActionIdFormatter;
use Duyler\ActionBus\Service\ActionService;
use Duyler\ActionBus\Service\SubscriptionService;
use Duyler\ActionBus\Service\TriggerService;
Expand All @@ -28,6 +28,6 @@ public function __construct(

public function getById(string|UnitEnum $actionId): Action
{
return $this->actionService->getById(IdFormatter::format($actionId));
return $this->actionService->getById(ActionIdFormatter::toString($actionId));
}
}
4 changes: 2 additions & 2 deletions src/State/Service/StateMainResumeService.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace Duyler\ActionBus\State\Service;

use Duyler\ActionBus\Bus\Task;
use Duyler\ActionBus\Formatter\IdFormatter;
use Duyler\ActionBus\Formatter\ActionIdFormatter;
use Duyler\ActionBus\Service\ResultService;
use Duyler\ActionBus\State\Service\Trait\ResultServiceTrait;
use UnitEnum;
Expand All @@ -22,7 +22,7 @@ public function __construct(

public function getActionId(): string|UnitEnum
{
return IdFormatter::reverse($this->task->action->id);
return ActionIdFormatter::reverse($this->task->action->id);
}

public function getResumeValue(): mixed
Expand Down
4 changes: 2 additions & 2 deletions src/State/Service/StateMainSuspendService.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

use Duyler\ActionBus\Bus\ActionContainer;
use Duyler\ActionBus\Bus\Task;
use Duyler\ActionBus\Formatter\IdFormatter;
use Duyler\ActionBus\Formatter\ActionIdFormatter;
use Duyler\ActionBus\Service\ActionService;
use Duyler\ActionBus\Service\ResultService;
use Duyler\ActionBus\Service\SubscriptionService;
Expand Down Expand Up @@ -37,7 +37,7 @@ public function __construct(

public function getActionId(): string|UnitEnum
{
return IdFormatter::reverse($this->task->action->id);
return ActionIdFormatter::reverse($this->task->action->id);
}

public function getContainer(): ActionContainer
Expand Down
10 changes: 5 additions & 5 deletions src/State/Service/Trait/ActionServiceTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace Duyler\ActionBus\State\Service\Trait;

use Duyler\ActionBus\Dto\Action;
use Duyler\ActionBus\Formatter\IdFormatter;
use Duyler\ActionBus\Formatter\ActionIdFormatter;
use Duyler\ActionBus\Service\ActionService;
use UnitEnum;

Expand All @@ -28,17 +28,17 @@ public function doAction(Action $action): void

public function doExistsAction(string|UnitEnum $actionId): void
{
$this->actionService->doExistsAction(IdFormatter::format($actionId));
$this->actionService->doExistsAction(ActionIdFormatter::toString($actionId));
}

public function actionIsExists(string|UnitEnum $actionId): bool
{
return $this->actionService->actionIsExists(IdFormatter::format($actionId));
return $this->actionService->actionIsExists(ActionIdFormatter::toString($actionId));
}

public function removeAction(string|UnitEnum $actionId): void
{
$this->actionService->removeAction(IdFormatter::format($actionId));
$this->actionService->removeAction(ActionIdFormatter::toString($actionId));
}

/** @return array<string, Action> */
Expand All @@ -49,7 +49,7 @@ public function getByContract(string $contract): array

public function getById(string|UnitEnum $actionId): Action
{
return $this->actionService->getById(IdFormatter::format($actionId));
return $this->actionService->getById(ActionIdFormatter::toString($actionId));
}

/** @param array<string, string> $bind */
Expand Down
4 changes: 2 additions & 2 deletions src/State/Service/Trait/QueueServiceTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace Duyler\ActionBus\State\Service\Trait;

use Duyler\ActionBus\Formatter\IdFormatter;
use Duyler\ActionBus\Formatter\ActionIdFormatter;
use Duyler\ActionBus\Service\QueueService;
use UnitEnum;

Expand All @@ -25,7 +25,7 @@ public function queueIsNotEmpty(): bool

public function inQueue(string|UnitEnum $actionId): bool
{
return $this->queueService->inQueue(IdFormatter::format($actionId));
return $this->queueService->inQueue(ActionIdFormatter::toString($actionId));
}

public function queueCount(): int
Expand Down
6 changes: 3 additions & 3 deletions src/State/Service/Trait/ResultServiceTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace Duyler\ActionBus\State\Service\Trait;

use Duyler\ActionBus\Dto\Result;
use Duyler\ActionBus\Formatter\IdFormatter;
use Duyler\ActionBus\Formatter\ActionIdFormatter;
use Duyler\ActionBus\Service\ResultService;
use UnitEnum;

Expand All @@ -16,11 +16,11 @@ trait ResultServiceTrait
{
public function getResult(string|UnitEnum $actionId): Result
{
return $this->resultService->getResult(IdFormatter::format($actionId));
return $this->resultService->getResult(ActionIdFormatter::toString($actionId));
}

public function resultIsExists(string|UnitEnum $actionId): bool
{
return $this->resultService->resultIsExists(IdFormatter::format($actionId));
return $this->resultService->resultIsExists(ActionIdFormatter::toString($actionId));
}
}
4 changes: 2 additions & 2 deletions src/State/StateAction.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
use Duyler\ActionBus\Contract\State\StateHandlerObservedInterface;
use Duyler\ActionBus\Contract\StateActionInterface;
use Duyler\ActionBus\Dto\Action;
use Duyler\ActionBus\Formatter\IdFormatter;
use Duyler\ActionBus\Formatter\ActionIdFormatter;
use Duyler\ActionBus\State\Service\StateActionAfterService;
use Duyler\ActionBus\State\Service\StateActionBeforeService;
use Duyler\ActionBus\State\Service\StateActionThrowingService;
Expand Down Expand Up @@ -80,7 +80,7 @@ private function isObserved(StateHandlerObservedInterface $handler, Action $acti
$observed = $handler->observed($context);
/** @var string|UnitEnum $actionId */
foreach ($observed as $actionId) {
$observed[] = IdFormatter::format($actionId);
$observed[] = ActionIdFormatter::toString($actionId);
}
return count($observed) === 0 || in_array($action->id, $observed);
}
Expand Down

0 comments on commit 7c70a76

Please sign in to comment.