/** * @param array $queryParams * * @return array|null * @throws \Exception */ public function loadAllByDoctor($queryParams) { $doctorId = array_key_exists('practo_account_id', $queryParams) ? $queryParams['practo_account_id'] : -1; try { $doctorQuestionList = $this->getRepository()->findByFilters($doctorId, $queryParams); } catch (\Exception $e) { throw new \Exception($e->getMessage()); } if (null == $doctorQuestionList) { return null; } $doctorQuestionResponseList = QuestionMapper::mapDoctorQuestionList($doctorQuestionList['question'], true); return array("questions" => $doctorQuestionResponseList, "count" => $doctorQuestionList['count']); }
/** * Load Questions * * @param array $request - filters * * @return array Question objects */ public function loadByFilters($request) { /** * @var QuestionRepository $er */ $er = $this->helper->getRepository(ConsultConstants::QUESTION_ENTITY_NAME); $limit = array_key_exists('limit', $request) ? $request['limit'] : 30; $offset = array_key_exists('offset', $request) ? $request['offset'] : 0; if (array_key_exists('search', $request) && !empty($request['search'])) { //$search = $this->classification->sentenceWords($request['search']); $search = preg_split('/\\s+/', strtolower($request['search'])); $questionList = $er->findSearchQuestions($search, $limit, $offset); if (empty($questionList)) { return null; } $questionResponseList = QuestionMapper::mapQuestionList($questionList['questions']); return array("questions" => $questionResponseList, "count" => $questionList['count']); } $state = array_key_exists('state', $request) ? explode(",", $request['state']) : null; $category = array_key_exists('category', $request) ? explode(",", $request['category']) : null; $practoAccountId = array_key_exists('practo_account_id', $request) ? $request['practo_account_id'] : null; $bookmark = array_key_exists('bookmark', $request) ? $request['bookmark'] : null; $modifiedAfter = null; if (array_key_exists('modified_after', $request)) { $modifiedAfter = new \DateTime($request['modified_after']); $modifiedAfter->format('Y-m-d H:i:s'); } $questionList = $er->findQuestionsByFilters($practoAccountId, $bookmark, $state, $category, $modifiedAfter, $limit, $offset); if (empty($questionList)) { return null; } $questionResponseList = QuestionMapper::mapQuestionList($questionList['questions']); return array("questions" => $questionResponseList, "count" => $questionList['count']); }