<?php

namespace App\Http\Requests\Api;

use App\Libs\Security\XSSCleanFilter;
use Illuminate\Foundation\Http\FormRequest;
use Waavi\Sanitizer\Laravel\SanitizesInput;

class ContactForm extends FormRequest
{
    use SanitizesInput;
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'name'            => 'bail|required|string|max:50',
            'number'          => 'bail|required|string|max:20',
            'email'           => 'bail|required|email',
            'file'            => 'bail|file|mimes:jpeg,png,pdf,gif|max:5120',
            'message'         => 'bail|required|string|max:2000'
        ];
    }

    public function filters() {
        return [
            'name'            => "trim|strip_tags|xss_clean",
            'number'          => "trim|strip_tags|xss_clean",
            'email'           => "trim|strip_tags|xss_clean",
            'message'         => "trim|strip_tags|xss_clean",
        ];
    }

    public function customFilters()
    {
        return ['xss_clean' => XSSCleanFilter::class];
    }
}
