103 lines
4.7 KiB
PHP
103 lines
4.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Requests\Bo;
|
|
|
|
use Illuminate\Foundation\Http\FormRequest;
|
|
|
|
class UpdateSettingsRequest extends FormRequest
|
|
{
|
|
/**
|
|
* Determine if the user is authorized to make this request.
|
|
*
|
|
* @return boolean
|
|
*/
|
|
public function authorize()
|
|
{
|
|
$this->merge([
|
|
'use_ean_codes' => $this->use_ean_codes ? true : false,
|
|
'activated_teaser' => $this->activated_teaser ? true : false,
|
|
'activated_close_page' => $this->activated_close_page ? true : false,
|
|
'winning_proof' => $this->winning_proof ? true : false,
|
|
'reductions_activated' => $this->reductions_activated ? true : false,
|
|
'facebook_activated' => $this->facebook_activated ? true : false,
|
|
'notification_emails' => collect(\json_decode($this->notification_emails, true))->pluck('email')->toArray(),
|
|
'web_coupons' => collect(\json_decode($this->web_coupons, true))->toArray(),
|
|
]);
|
|
/** @var \App\Models\User $user */
|
|
$user = auth('web')->user();
|
|
return auth('web')->check() and $user->isAdmin();
|
|
}
|
|
|
|
/**
|
|
* Get the validation rules that apply to the request.
|
|
*
|
|
* @return array
|
|
*/
|
|
public function rules()
|
|
{
|
|
return [
|
|
'name' => 'required|string|min:5|max:255',
|
|
'nb_participation_player' => 'required|numeric|min:0|max:500',
|
|
'nb_participation_ip' => 'required|numeric|min:0|max:500',
|
|
'nb_unique_code_use' => 'required|numeric|min:0|max:500',
|
|
'use_ean_codes' => 'required|boolean',
|
|
'activated_teaser' => 'required|boolean',
|
|
'activated_close_page' => 'required|boolean',
|
|
'redirect_close' => 'required|url',
|
|
'winning_proof' => 'required|boolean',
|
|
'reductions_activated' => 'required|boolean',
|
|
'facebook_activated' => 'required|boolean',
|
|
'company' => 'required|string|min:2|max:255',
|
|
'facebook_app_id' => 'nullable|string|max:255',
|
|
'facebook_secret' => 'nullable|string|max:255',
|
|
'analytics' => 'nullable|string|regex:/(^UA\-[0-9]{8}\-[0-9]$)/u|max:255',
|
|
'reductions_site' => 'required_if:reductions_activated,1|string|min:1|max:255',
|
|
'reductions_campaign' => 'required_if:reductions_activated,1|string|min:1|max:255',
|
|
'web_coupons' => 'nullable|array',
|
|
'web_coupons.*' => 'required|array',
|
|
'web_coupons.*.web_coupon_identifiant' => 'required|numeric|min:2|max:50',
|
|
'web_coupons.*.percentage' => 'required|numeric',
|
|
'web_coupons.*.face_value' => 'required|numeric',
|
|
'web_coupons.*.valid_on' => 'required|string|min:2|max:150',
|
|
'web_coupons.*.img_name' => 'required|string|min:2|max:150',
|
|
'notification_emails' => 'nullable|array',
|
|
'notification_emails.*' => 'required|email:rfc,filter,dns',
|
|
'start_date' => 'required|date|before:end_date',
|
|
'end_date' => 'required|date|after:start_date',
|
|
'close_page_active_date' => 'required_if:activated_close_page,true|date|after:end_date',
|
|
];
|
|
}
|
|
|
|
/**
|
|
* Get custom attributes for validator errors.
|
|
*
|
|
* @return array
|
|
*/
|
|
public function attributes()
|
|
{
|
|
return [
|
|
'name' => trans('Nom'),
|
|
'nb_participation_player' => trans('Nombre de participation par joueur'),
|
|
'nb_participation_ip' => trans('Nombre de participation par adresse IP'),
|
|
'nb_unique_code_use' => trans('Nombre d\'utilisation du code unique'),
|
|
'use_ean_codes' => trans('Activer les codes EAN'),
|
|
'activated_teaser' => trans('Activation du teaser'),
|
|
'activated_close_page' => trans('Activation page de fermeture'),
|
|
'close_page_active_date' => trans('Page active jusqu\'au'),
|
|
'redirect_close' => trans('URL de redirection après la date de fin du jeu'),
|
|
'winning_proof' => trans('Activer les preuves de gain'),
|
|
'company' => trans('Nom de la société'),
|
|
'reductions_activated' => trans('Activer les bons de réduction'),
|
|
'reductions_site' => trans('Référence du site'),
|
|
'reductions_campaign' => trans('Référence de la campagne'),
|
|
'facebook_activated' => trans('Activer Facebook connect'),
|
|
'facebook_app_id' => trans('Facebook app_id'),
|
|
'facebook_secret' => trans('Facebook app_secret'),
|
|
'web_coupons' => trans('Les réductions'),
|
|
'analytics' => trans('Clé analytics'),
|
|
'start_date' => trans('Date de début'),
|
|
'end_date' => trans('Date de fin'),
|
|
'notification_emails' => trans('Destinataires des notifications de gain'),
|
|
];
|
|
}
|
|
}
|