public function getCriterionCreateResponse(sfGuardUser $user) { /** @var sfWebRequest $request */ $request = $this->getRequest(); $decision = DecisionTable::getInstance()->getDecisionForUser($user, $request->getParameter('decision_id')); if (is_object($decision)) { $criterion = new Criterion(); $criterion->Decision = $decision; $criterion->name = $request->getParameter('name', 'New criterion'); $criterion->description = $request->getParameter('description', ''); $criterion->variable_type = $request->getParameter('type', 'Benefit'); $criterion->measurement = $request->getParameter('measure', 'five point scale'); try { $criterion->save(); $result = array('status' => 'success', 'result' => $criterion->getAPIData()); } catch (sfException $ex) { $result = array('status' => 'error', 'error' => $ex->getMessage()); } } else { $result = array('status' => 'error', 'error' => sprintf('Project with id %d does not exist', $request->getParameter('decision_id'))); } return $result; }