39 lines
1.0 KiB
PHP
39 lines
1.0 KiB
PHP
|
<?php declare(strict_types=1);
|
||
|
|
||
|
namespace App\Http\Requests\Private\Profile;
|
||
|
|
||
|
use App\Contracts\FormRequestDto;
|
||
|
use App\Dto\Request\Private\Profile\UpdateSettings;
|
||
|
use App\Enums\Lang;
|
||
|
use App\Helpers\Helpers;
|
||
|
use Illuminate\Foundation\Http\FormRequest;
|
||
|
use Illuminate\Validation\Rule;
|
||
|
use Illuminate\Validation\Rules\Enum;
|
||
|
|
||
|
final class UpdateSettingsRequest extends FormRequest implements FormRequestDto
|
||
|
{
|
||
|
/**
|
||
|
* Get the validation rules that apply to the request.
|
||
|
*/
|
||
|
public function rules(): array
|
||
|
{
|
||
|
return [
|
||
|
'lang' => ['nullable', new Enum(Lang::class)],
|
||
|
'timezone' => ['nullable', Rule::in(Helpers::getTimeZoneList()->keys()->toArray())]
|
||
|
];
|
||
|
}
|
||
|
|
||
|
public function getDto(): UpdateSettings
|
||
|
{
|
||
|
$lang = $this->input('lang', null);
|
||
|
if (!is_null($lang)) {
|
||
|
$lang = Lang::from((int) $lang);
|
||
|
}
|
||
|
|
||
|
return new UpdateSettings(
|
||
|
lang: $lang,
|
||
|
timezone: $this->input('timezone', null),
|
||
|
);
|
||
|
}
|
||
|
}
|