* @license https://www.gnu.org/licenses/agpl-3.0.en.html/ GNU Affero General Public License v3.0 */ namespace App\Http\Requests; use Closure; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Rule; class StoreSubtitleRequest extends FormRequest { /** * Determine if the user is authorized to make this request. */ public function authorize(): bool { return true; } /** * Get the validation rules that apply to the request. * * @return array> */ public function rules(): array { return [ 'subtitle_file' => [ 'required', 'file', function (string $attribute, mixed $value, Closure $fail): void { if (!\in_array('.'.$value->getClientOriginalExtension(), ['.srt','.ass', '.sup', '.zip'])) { $fail('The Subtitle uploaded does not have a ".srt, .ass, .sup or .zip" file extension (it has "'.$value->getClientOriginalExtension().'"). Did you upload the correct file?'); } }, ], 'language_id' => [ 'required', Rule::exists('media_languages', 'id'), ], 'note' => [ 'required', 'max:65535', ], 'anon' => [ 'required', 'boolean', ], 'torrent_id' => [ 'required', 'integer', Rule::exists('torrents', 'id'), ], ]; } }