File: D:/HostingSpaces/SBogers10/farmfun.komma.pro/app/Komma/Shop/Checkout/CheckoutRequest.php
<?php
namespace App\Komma\Shop\Checkout;
use App\Komma\Addresses\Models\Address;
use App\Komma\Globalization\Rules\ValidCountryIso3;
use Illuminate\Foundation\Http\FormRequest;
/**
* Class CheckoutRequest
*
* Validates a checkout request.
*/
class CheckoutRequest extends FormRequest
{
/**
* 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()
{
if (\Input::has('add_coupon') || \Input::has('delete_coupon')) { //Coupon code add or delete button pressed. No need to validate the other fields since these actions redirect us back to the same form.
return [];
} else {
$validationRules = [
'terms_and_conditions' => 'required|accepted',
'invoice_address' => 'required|integer', //When it is -1, it means a new address must be entered
'invoice_street' => array_merge(Address::basicValidationRules()['street'], ['required_if:invoice_address,-1']),
'invoice_house_number' => array_merge(Address::basicValidationRules()['house_number'], ['required_if:invoice_address,-1']),
'invoice_postal_code' => array_merge(Address::basicValidationRules()['postal_code'], ['required_if:invoice_address,-1']),
'invoice_city' => array_merge(Address::basicValidationRules()['city'], ['required_if:invoice_address,-1']),
'invoice_phone' => array_merge(Address::basicValidationRules()['phone'], ['required_if:invoice_address,-1']),
'invoice_country' => 'required_if:invoice_address,-1', new ValidCountryIso3(),
'shipping_address' => 'required|integer', //When it is -1, it means a new address must be entered
'shipping_street' => array_merge(Address::basicValidationRules()['street'], ['required_if:invoice_address,-1']),
'shipping_house_number' => array_merge(Address::basicValidationRules()['house_number'], ['required_if:invoice_address,-1']),
'shipping_postal_code' => array_merge(Address::basicValidationRules()['postal_code'], ['required_if:invoice_address,-1']),
'shipping_city' => array_merge(Address::basicValidationRules()['city'], ['required_if:invoice_address,-1']),
'shipping_phone' => array_merge(Address::basicValidationRules()['phone'], ['required_if:invoice_address,-1']),
'shipping_country' => 'required_if:invoice_address,-1', new ValidCountryIso3(),
'first_name' => 'sometimes|required|string|min:2|max:200',
'last_name' => 'sometimes|required|string|min:2|max:200',
'email' => 'sometimes|required|email',
];
return $validationRules;
}
}
/**
* Get custom messages for validator error
*
* @return array
*/
public function messages()
{
$messages = [
'terms_and_conditions.accepted' => __('shop/checkout.validation.terms_and_conditions.accepted'),
];
foreach (['shipping', 'invoice'] as $type) {
foreach ([$type.'_street', $type.'_house_number', $type.'_postal_code', $type.'_city', $type.'_phone', $type.'_country'] as $attribute) {
$messages[$attribute.'.required_if'] = __('shop/checkout.validation.required_if', ['attribute' => __('validation.attributes.'.$attribute)]);
}
}
return $messages;
}
}