public function surveyEvaluateAction(OrmManager $orm, $evaluation, $entry) { $entryModel = $orm->getSurveyEntryModel(); $evaluationModel = $orm->getSurveyEvaluationModel(); $ruleModel = $orm->getSurveyEvaluationRuleModel(); $evaluation = $evaluationModel->getById($evaluation); if (!$evaluation) { $this->response->setNotFound(); return; } $entry = $entryModel->getById($entry); if (!$entry) { $this->response->setNotFound(); return; } $result = $evaluation->evaluate($entry); $willLog = $this->request->getQueryParameter('log'); if ($willLog == 1 || $willLog == 'true') { $evaluationLogModel = $orm->getSurveyEvaluationLogModel(); $evaluationLog = $evaluationLogModel->createEntry(); $evaluationLog->setEvaluation($evaluation); $evaluationLog->setEntry($entry); $evaluationLog->setScore($result->getScore()); $evaluationLogModel->save($evaluationLog); } $this->document->setLink('self', $this->request->getUrl()); $this->document->setResourceData($ruleModel->getMeta()->getOption('json.api'), $result->getRule()); $this->document->setMeta('average', (double) $evaluation->getAverageScore()); $this->document->setMeta('score', $result->getScore()); }