/** * {@inheritdoc} */ public function validate(CompiledTransformMappingInterface $transformMapping, array $input) { $rules = []; $messages = []; foreach ($transformMapping->getFields(SetterField::OPERATION) as $field) { $parameters = $field->getValidationParameters(); // add a validator for the data type of this field $parameters .= '|' . $field->getTypeValidatorName(); $rules[$field->getName()] = $parameters; } $validator = Validator::make($input, $rules); if ($validator->fails() === true) { $failed = $validator->failed(); $validationMessages = $validator->messages(); $messages = []; foreach ($failed as $field => $rules) { $messages[$field] = []; foreach ($rules as $rule => $parameters) { $messages[$field][$rule] = $validationMessages->first($field); } } } return $messages; }
protected function exportModel(ContextInterface $context = null, ResourceInterface $resource, CompiledTransformMappingInterface $transformMapping, $instance, $allFields = false) { $item = []; $resourceDefinition = $this->compilerCache->findResourceDefinitionForModelClass(get_class($instance)); $href = $this->makeUrlForInstance($resourceDefinition, $instance); $fields = $transformMapping->getFields(GetterField::OPERATION); foreach ($fields as $def) { if ($allFields === true || $context->wantsField($def->getName()) === true) { $callable = $def->getCallback(); if ($callable !== null) { if (is_array($callable) === true) { $val = call_user_func($callable, $instance); } else { $val = $this->getFieldValue($instance, $callable); } $item[$def->getName()] = $this->exportValue($def, $val); } } } $response = $this->factory->createInstanceResponse($resourceDefinition, $resource, $context, $href, $item, $instance); $this->exportEmbeds($transformMapping, $context, $response, $instance); return $response; }