Skip to content

Commit

Permalink
Merge pull request #5 from AuroraWebSoftware/has-state-update
Browse files Browse the repository at this point in the history
#HasState Trait updated
  • Loading branch information
emreakay committed Jan 24, 2024
2 parents e106b0f + bc9d8a6 commit d729558
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 28 deletions.
8 changes: 6 additions & 2 deletions src/Abstracts/AbstractTransitionSuccessJob.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,18 @@ abstract class AbstractTransitionSuccessJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

public function __construct()
public function __construct(
public StateableModelContract&Model $model,
public string $from,
public string $to,
public array $parameters = [])
{
}

/**
* @throws NotImplementedException
*/
public function handle(StateableModelContract&Model $model, string $from, string $to, array $parameters = []): void
public function handle(): void
{
throw new NotImplementedException();
}
Expand Down
22 changes: 11 additions & 11 deletions src/Contacts/StateableModelContract.php
Original file line number Diff line number Diff line change
Expand Up @@ -72,35 +72,35 @@ public function currentStateMetadata(): array;
*
* @throws WorkflowNotFoundException
*/
public function transitionGuardResults(string $toState, array $withoutGuards = null): TransitionGuardResultCollection;
public function transitionGuardResults(string $toState, ?array $withoutGuards = null): TransitionGuardResultCollection;

public function canTransitionTo(string $toState, array $withoutGuards = null): bool;
public function canTransitionTo(string $toState, ?array $withoutGuards = null): bool;

/**
* @return array<string>|null
*/
public function definedTransitionKeys(array $withoutGuards = null): ?array;
public function definedTransitionKeys(?array $withoutGuards = null): ?array;

/**
* @param array<class-string>|null $withoutGuards
*
* @throws WorkflowNotFoundException
* @throws Throwable
*/
public function allowedTransitionKeys(array $withoutGuards = null): ?array;
public function allowedTransitionKeys(?array $withoutGuards = null): ?array;

/**
* @return array<string>|null
*/
public function definedTransitionStates(array $withoutGuards = null): ?array;
public function definedTransitionStates(?array $withoutGuards = null): ?array;

/**
* @param array<class-string>|null $withoutGuards
*
* @throws WorkflowNotFoundException
* @throws Throwable
*/
public function allowedTransitionStates(array $withoutGuards = null): ?array;
public function allowedTransitionStates(?array $withoutGuards = null): ?array;

/**
* @param class-string|null $actorModelType
Expand All @@ -114,11 +114,11 @@ public function allowedTransitionStates(array $withoutGuards = null): ?array;
* @throws WorkflowNotSupportedException
*/
public function transitionTo(
string $toState, string $comment = null,
string $actorModelType = null, int $actorModelId = null,
array $metadata = null,
array $withoutGuards = null,
string $transitionKey = null,
string $toState, ?string $comment = null,
?string $actorModelType = null, ?int $actorModelId = null,
?array $metadata = null,
?array $withoutGuards = null,
?string $transitionKey = null,
bool $logHistoryTransitionAction = true
): bool;
}
24 changes: 12 additions & 12 deletions src/Traits/HasState.php
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ public function currentStateMetadata(): array
* @throws WorkflowNotSupportedException
* @throws WorkflowNotAppliedException
*/
public function transitionGuardResults(string $toState, array $withoutGuards = null): TransitionGuardResultCollection
public function transitionGuardResults(string $toState, ?array $withoutGuards = null): TransitionGuardResultCollection
{
$resultCollection = TransitionGuardResultCollection::make();

Expand Down Expand Up @@ -251,18 +251,18 @@ public function transitionGuardResults(string $toState, array $withoutGuards = n
* @throws WorkflowNotFoundException
* @throws WorkflowNotSupportedException
*/
public function canTransitionTo(string $toState, array $withoutGuards = null): bool
public function canTransitionTo(string $toState, ?array $withoutGuards = null): bool
{
return $this->transitionGuardResults($toState, $withoutGuards)->allowed();
}

public function definedTransitionKeys(array $withoutGuards = null): ?array
public function definedTransitionKeys(?array $withoutGuards = null): ?array
{
// TODO: Implement definedTransitionKeys() method.
// testleri yazılacak
}

public function allowedTransitionKeys(array $withoutGuards = null): ?array
public function allowedTransitionKeys(?array $withoutGuards = null): ?array
{
// TODO: Implement allowedTransitionKeys() method.
// testleri yazılacak
Expand All @@ -274,7 +274,7 @@ public function allowedTransitionKeys(array $withoutGuards = null): ?array
* @throws WorkflowNotFoundException
* @throws TransitionNotFoundException
*/
public function definedTransitionStates(array $withoutGuards = null): ?array
public function definedTransitionStates(?array $withoutGuards = null): ?array
{
$definedTransitionStates = [];

Expand Down Expand Up @@ -308,7 +308,7 @@ public function definedTransitionStates(array $withoutGuards = null): ?array
* @throws WorkflowNotFoundException
* @throws WorkflowNotSupportedException
*/
public function allowedTransitionStates(array $withoutGuards = null): ?array
public function allowedTransitionStates(?array $withoutGuards = null): ?array
{
$allowedTransitionStates = [];
$definedTransitionStates = $this->definedTransitionStates($withoutGuards);
Expand All @@ -334,11 +334,11 @@ public function allowedTransitionStates(array $withoutGuards = null): ?array
* @throws WorkflowNotSupportedException
*/
public function transitionTo(
string $toState, string $comment = null,
string $actorModelType = null, int $actorModelId = null,
array $metadata = null,
array $withoutGuards = null,
string $transitionKey = null,
string $toState, ?string $comment = null,
?string $actorModelType = null, ?int $actorModelId = null,
?array $metadata = null,
?array $withoutGuards = null,
?string $transitionKey = null,
bool $logHistoryTransitionAction = true
): bool {

Expand Down Expand Up @@ -407,7 +407,7 @@ public function transitionTo(
}

foreach ($successJobs as $successJob) {
$successJob::dispatch($this, $this->currentState(), $toState, $action[1] ?? []);
dispatch(new $successJob[0]($this, $this->currentState(), $toState, $successJob[1] ?? []));
}

$transitionFound = true;
Expand Down
11 changes: 10 additions & 1 deletion tests/Jobs/TestTransitionSuccessJob.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,19 @@

class TestTransitionSuccessJob extends AbstractTransitionSuccessJob
{
public function __construct(
public StateableModelContract&Model $model,
public string $from,
public string $to,
public array $parameters = [])
{
}

/**
* Execute the job.
*/
public function handle(StateableModelContract&Model $model, string $from, string $to, array $parameters = []): void
public function handle(): void
{
echo 'Success Job';
}
}
8 changes: 6 additions & 2 deletions tests/PackageTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,9 @@
[TestSuccessTransitionAction::class, ['a' => 'b']],
],
'success_metadata' => ['asd' => 'asd'],
'success_jobs' => [TestTransitionSuccessJob::class],
'success_jobs' => [
[TestTransitionSuccessJob::class, ['aa' => 1]],
],
],
'transtion2' => [
'from' => ['todo'],
Expand Down Expand Up @@ -104,7 +106,9 @@
'guards' => [],
'actions' => [],
'success_metadata' => ['asd' => 'asd'],
'success_jobs' => [TestTransitionSuccessJob::class],
'success_jobs' => [
[TestTransitionSuccessJob::class, ['aaa' => 1]],
],
],
'transtion2' => [
'from' => ['todo'],
Expand Down

0 comments on commit d729558

Please sign in to comment.