123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- <?php
- namespace App\Http\Requests;
- use Illuminate\Foundation\Http\FormRequest;
- use Illuminate\Validation\Rule;
- class StoreRuleRequest 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()
- {
- return [
- 'name' => [
- 'required',
- 'string',
- 'max:50',
- ],
- 'conditions' => [
- 'required',
- 'array',
- 'max:5',
- ],
- 'conditions.*.type' => [
- 'required',
- Rule::in([
- 'subject',
- 'sender',
- 'alias',
- 'alias_description',
- ]),
- ],
- 'conditions.*.match' => [
- 'sometimes',
- 'required',
- Rule::in([
- 'is exactly',
- 'is not',
- 'contains',
- 'does not contain',
- 'starts with',
- 'does not start with',
- 'ends with',
- 'does not end with',
- ]),
- ],
- 'conditions.*.values' => [
- 'required',
- 'array',
- 'min:1',
- 'max:10',
- ],
- 'conditions.*.values.*' => [
- 'distinct',
- ],
- 'actions' => [
- 'required',
- 'array',
- 'max:5',
- ],
- 'actions.*.type' => [
- 'required',
- Rule::in([
- 'subject',
- 'displayFrom',
- 'encryption',
- 'banner',
- 'block',
- 'removeAttachments',
- 'forwardTo',
- //'webhook',
- ]),
- ],
- 'actions.*.value' => Rule::forEach(function ($value, $attribute, $data, $action) {
- if ($action['type'] === 'forwardTo') {
- return [Rule::in(user()->verifiedRecipients()->pluck('id')->toArray())]; // Must be a valid verified recipient
- }
- return [
- 'required',
- 'max:50',
- ];
- }),
- 'operator' => [
- 'required',
- 'in:AND,OR',
- ],
- 'forwards' => 'boolean',
- 'replies' => 'boolean',
- 'sends' => 'boolean',
- ];
- }
- }
|