Code Duplication    Length = 27-27 lines in 2 locations

src/Exceptions/CouldNotResolveTransitionField.php 1 location

@@ 9-35 (lines=27) @@
6
use Facade\IgnitionContracts\BaseSolution;
7
use Facade\IgnitionContracts\ProvidesSolution;
8
9
class CouldNotResolveTransitionField extends CouldNotPerformTransition implements ProvidesSolution
10
{
11
    /** @var string */
12
    protected $modelClass;
13
14
    public static function make(string $modelClass): self
15
    {
16
        return (new static("You tried to invoke {$modelClass}::transitionTo() directly, though there are multiple state fields configured."))
17
            ->setModelClass($modelClass);
18
    }
19
20
    public function setModelClass(string $modelClass): self
21
    {
22
        $this->modelClass = $modelClass;
23
24
        return $this;
25
    }
26
27
    public function getSolution(): Solution
28
    {
29
        return BaseSolution::create('Could not resolve transition field')
30
            ->setSolutionDescription("Use {$this->modelClass}->stateField->transitionTo()")
31
            ->setDocumentationLinks([
32
                'Using transitions' => 'https://docs.spatie.be/laravel-model-states/v1/working-with-transitions/01-configuring-transitions/#using-transitions'
33
            ]);
34
    }
35
}
36

src/Exceptions/TransitionNotAllowed.php 1 location

@@ 9-35 (lines=27) @@
6
use Facade\IgnitionContracts\BaseSolution;
7
use Facade\IgnitionContracts\ProvidesSolution;
8
9
class TransitionNotAllowed extends CouldNotPerformTransition implements ProvidesSolution
10
{
11
    /** @var string */
12
    protected $transitionClass;
13
14
    public static function make(string $modelClass, string $transitionClass): self
15
    {
16
        return (new static("The transition `{$transitionClass}` is not allowed on model `{$modelClass}` at the moment."))
17
            ->setTransitionClass($transitionClass);
18
    }
19
20
    public function setTransitionClass(string $transitionClass): self
21
    {
22
        $this->transitionClass = $transitionClass;
23
24
        return $this;
25
    }
26
27
    public function getSolution(): Solution
28
    {
29
        return BaseSolution::create('Transition not allowed')
30
            ->setSolutionDescription("Review your implementation of `canTransition` in {$this->transitionClass} if this is unexpected")
31
            ->setDocumentationLinks([
32
                'Custom transition classes' => 'https://docs.spatie.be/laravel-model-states/v1/working-with-transitions/02-custom-transition-classes/'
33
            ]);
34
    }
35
}
36