70 lines
1.8 KiB
PHP
70 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace LaraBB\Group\UI\Web\Requests;
|
|
|
|
use Illuminate\Foundation\Http\FormRequest;
|
|
use Illuminate\Http\RedirectResponse;
|
|
|
|
/**
|
|
* Class Store
|
|
* @package LaraBB\Group\UI\Web\Requests
|
|
*/
|
|
class Store extends FormRequest
|
|
{
|
|
/**
|
|
* @return bool
|
|
*/
|
|
public function authorize(): bool
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* @return array
|
|
*/
|
|
public function rules(): array
|
|
{
|
|
return [
|
|
'group' => 'required|max:255',
|
|
'priority' => 'required|integer',
|
|
'color' => 'required|regex:/^#[a-zA-Z0-9]{6}/i',
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @return array
|
|
*/
|
|
public function messages(): array
|
|
{
|
|
return [
|
|
'group.required' => 'Bitte geben Sie eine Gruppenbezeichnung an!',
|
|
'group.max' => 'Die angegebene Gruppenbezeichnung ist zu lang (max. :max Zeichen).',
|
|
'priority.required' => 'Bitte geben Sie eine Gruppenpriorität an!',
|
|
'priority.integer' => 'Die angegebene Gruppenpriorität ist keine Zahl.',
|
|
'color.required' => 'Bitte geben Sie eine Gruppenfarbe an!',
|
|
'color.regex' => 'Die angegebene Gruppenfarbe hat ein ungültiges Format.'
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @return RedirectResponse
|
|
*/
|
|
public function success(): RedirectResponse
|
|
{
|
|
return redirect()->route('admin-groups')->with([
|
|
'success' => 'Die Gruppe wurde erfolgreich erstellt.',
|
|
'alert-options' => 'aside'
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* @return RedirectResponse
|
|
*/
|
|
public function failed(): RedirectResponse
|
|
{
|
|
return redirect()->route('admin-groups')->with([
|
|
'failed' => 'Die Gruppe konnte aufgrund einer technischen Störung nicht erstellt werden.'
|
|
])->withInput();
|
|
}
|
|
}
|