/**
  * @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']);
 }
Example #2
0
 /**
  * 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']);
 }