Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
namespace Spatie\LaravelIgnition\Http\Requests;
4
 
5
use Illuminate\Foundation\Http\FormRequest;
6
use Spatie\Ignition\Contracts\RunnableSolution;
7
use Spatie\Ignition\Contracts\Solution;
8
use Spatie\Ignition\Contracts\SolutionProviderRepository;
9
 
10
class ExecuteSolutionRequest extends FormRequest
11
{
12
    public function rules(): array
13
    {
14
        return [
15
            'solution' => 'required',
16
            'parameters' => 'array',
17
        ];
18
    }
19
 
20
    public function getSolution(): Solution
21
    {
22
        $solution = app(SolutionProviderRepository::class)
23
            ->getSolutionForClass($this->get('solution'));
24
 
25
        abort_if(is_null($solution), 404, 'Solution could not be found');
26
 
27
        return $solution;
28
    }
29
 
30
    public function getRunnableSolution(): RunnableSolution
31
    {
32
        $solution = $this->getSolution();
33
 
34
        if (! $solution instanceof RunnableSolution) {
35
            abort(404, 'Runnable solution could not be found');
36
        }
37
 
38
        return $solution;
39
    }
40
}