Example #1
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']);
 }