protected function validateOne() { setContentType("json"); $group = new Group(); $given = array_keys($_POST); $response["error"] = null; if (count($given) == 1) { if ($given[0] == "name") { $group->setName($_POST["name"]); $g = GroupQuery::create()->filterByOwner($this->data["loggedUser"])->filterByName($_POST["name"])->findOne(); if ($g) { $response["error"] = array("name" => "name", "message" => "You can not have two groups with the same name."); $this->viewString(json_encode($response)); return; } } else { if ($given[0] == "description") { $group->setDescription($_POST["description"]); } else { setHTTPStatusCode("400"); return; } } if (!$group->validate()) { foreach ($group->getValidationFailures() as $failure) { if ($given[0] == $failure->getPropertyPath()) { $response["error"] = array("name" => $failure->getPropertyPath(), "message" => $failure->getMessage()); } } } $this->viewString(json_encode($response)); } else { setHTTPStatusCode("400"); } }