/home/techb158/immovalet.com/vendor/botble/platform/js-validation/src
NameSizeModeActions
Exceptions/-0755rm
Facades/-0755rm
Javascript/-0755rm
Providers/-0755rm
Remote/-0755rm
Support/-0755rm
JsValidatorFactory.php70590644editdlrm
RemoteValidationMiddleware.php18640644editdlrm
Edit: /home/techb158/immovalet.com/vendor/botble/platform/js-validation/src/JsValidatorFactory.php (7059B)
app = $app; $this->setOptions($options); } /** * @param $options * @return void */ protected function setOptions($options) { $options['disable_remote_validation'] = empty($options['disable_remote_validation']) ? false : $options['disable_remote_validation']; $options['view'] = empty($options['view']) ? 'core/js-validation:bootstrap' : $options['view']; $options['form_selector'] = empty($options['form_selector']) ? 'form' : $options['form_selector']; $this->options = $options; } /** * Creates JsValidator instance based on rules and message arrays. * * @param array $rules * @param array $messages * @param array $customAttributes * @param null|string $selector * @return JavascriptValidator */ public function make(array $rules, array $messages = [], array $customAttributes = [], $selector = null) { $validator = $this->getValidatorInstance($rules, $messages, $customAttributes); return $this->validator($validator, $selector); } /** * Get the validator instance for the request. * * @param array $rules * @param array $messages * @param array $customAttributes * @return Validator */ protected function getValidatorInstance(array $rules, array $messages = [], array $customAttributes = []) { $factory = $this->app->make(ValidationFactory::class); $data = $this->getValidationData($rules, $customAttributes); $validator = $factory->make($data, $rules, $messages, $customAttributes); $validator->addCustomAttributes($customAttributes); return $validator; } /** * Gets fake data when validator has wildcard rules. * * @param array $rules * @return array */ protected function getValidationData(array $rules, array $customAttributes = []) { $attributes = array_filter(array_keys($rules), function ($attribute) { return $attribute !== '' && mb_strpos($attribute, '*') !== false; }); $attributes = array_merge(array_keys($customAttributes), $attributes); $data = array_reduce($attributes, function ($data, $attribute) { Arr::set($data, $attribute, true); return $data; }, []); return $data; } /** * Creates JsValidator instance based on FormRequest. * * @param $formRequest * @param null $selector * @return JavascriptValidator * * @throws BindingResolutionException */ public function formRequest($formRequest, $selector = null) { if (!is_object($formRequest)) { $formRequest = $this->createFormRequest($formRequest); } $rules = method_exists($formRequest, 'rules') ? $formRequest->rules() : []; $validator = $this->getValidatorInstance($rules, $formRequest->messages(), $formRequest->attributes()); return $this->validator($validator, $selector); } /** * @param string|array $class * @return array */ protected function parseFormRequestName($class) { $params = []; if (is_array($class)) { $params = empty($class[1]) ? $params : $class[1]; $class = $class[0]; } return [$class, $params]; } /** * Creates and initializes an Form Request instance. * * @param string $class * @return FormRequest * * @throws BindingResolutionException */ protected function createFormRequest($class) { /* * @var $formRequest \Illuminate\Foundation\Http\FormRequest * @var $request Request */ [$class, $params] = $this->parseFormRequestName($class); $request = $this->app->__get('request'); $formRequest = $this->app->build($class, $params); if ($session = $request->getSession()) { $formRequest->setLaravelSession($session); } $formRequest->setUserResolver($request->getUserResolver()); $formRequest->setRouteResolver($request->getRouteResolver()); $formRequest->setContainer($this->app); $formRequest->query = $request->query; return $formRequest; } /** * Creates JsValidator instance based on Validator. * * @param Validator $validator * @param null|string $selector * @return JavascriptValidator */ public function validator(Validator $validator, $selector = null) { return $this->jsValidator($validator, $selector); } /** * Creates JsValidator instance based on Validator. * * @param Validator $validator * @param null|string $selector * @return JavascriptValidator */ protected function jsValidator(Validator $validator, $selector = null) { $remote = !$this->options['disable_remote_validation']; $view = $this->options['view']; $selector = is_null($selector) ? $this->options['form_selector'] : $selector; $delegated = new DelegatedValidator($validator, new ValidationRuleParserProxy($validator->getData())); $rules = new RuleParser($delegated, $this->getSessionToken()); $messages = new MessageParser($delegated, isset($this->options['escape']) ? $this->options['escape'] : false); $jsValidator = new ValidatorHandler($rules, $messages); $manager = new JavascriptValidator($jsValidator, compact('view', 'selector', 'remote')); return $manager; } /** * Get and encrypt token from session store. * * @return null|string */ protected function getSessionToken() { $token = null; if ($session = $this->app->__get('session')) { $token = $session->token(); } if ($encrypter = $this->app->__get('encrypter')) { $token = $encrypter->encrypt($token); } return $token; } }