id = $formData['id']; $data->title = trim($formData['title']); $data->showInPipeline = (bool)$formData['show_in_pipeline']; $data->showInTables = (bool)$formData['show_in_tables']; $data->availableFromStageId = $formData['available_from_stage_id']; $data->requiredFromStageId = $formData['required_from_stage_id']; $errors = $data->validate(); if (!empty($errors)) { throw ValidationFailedException::fromErrors($errors); } return $data; } /** * @return array */ public function validate() { $errors = []; // id-Property if ($this->id !== null && !is_int($this->id)) { $errors['id'][] = 'The "id" property must be an integer.'; } if ($this->id !== null && $this->id <= 0) { $errors['id'][] = 'The "id" property must be greater than zero.'; } // title-Property if (!is_string($this->title) || empty($this->title)) { $errors['title'][] = 'The "title" property can not be empty.'; } // showInPipeline-Property if (!is_bool($this->showInPipeline)) { $errors['showInPipeline'][] = 'The "showInPipeline" property must be type boolean.'; } // showInTables-Property if (!is_bool($this->showInTables)) { $errors['showInTables'][] = 'The "showInTables" property must be type boolean.'; } // availableFromStageId-Property if (!is_int($this->availableFromStageId)) { $errors['availableFromStageId'][] = 'The "availableFromStageId" property must be type integer.'; } if ($this->availableFromStageId < 0) { $errors['availableFromStageId'][] = 'The "availableFromStageId" property must be zero or greater than zero.'; } // requiredFromStageId-Property if (!is_int($this->requiredFromStageId)) { $errors['requiredFromStageId'][] = 'The "requiredFromStageId" property must be type integer.'; } if ($this->requiredFromStageId < 0) { $errors['requiredFromStageId'][] = 'The "requiredFromStageId" property must be zero or greater than zero.'; } return $errors; } }