getParams(); $params['published'] = ArticleModel::PUBLISH_PENDING; $params['deleted'] = 0; $sort = $pagerQuery->getSort(); $page = $pagerQuery->getPage(); $limit = $pagerQuery->getLimit(); $articleRepo = new ArticleRepo(); $pager = $articleRepo->paginate($params, $sort, $page, $limit); return $this->handleArticles($pager); } public function getQuestions() { $pagerQuery = new PagerQuery(); $params = $pagerQuery->getParams(); $params['published'] = QuestionModel::PUBLISH_PENDING; $params['deleted'] = 0; $sort = $pagerQuery->getSort(); $page = $pagerQuery->getPage(); $limit = $pagerQuery->getLimit(); $questionRepo = new QuestionRepo(); $pager = $questionRepo->paginate($params, $sort, $page, $limit); return $this->handleQuestions($pager); } public function getAnswers() { $pagerQuery = new PagerQuery(); $params = $pagerQuery->getParams(); $params['published'] = AnswerModel::PUBLISH_PENDING; $params['deleted'] = 0; $sort = $pagerQuery->getSort(); $page = $pagerQuery->getPage(); $limit = $pagerQuery->getLimit(); $answerRepo = new AnswerRepo(); $pager = $answerRepo->paginate($params, $sort, $page, $limit); return $this->handleAnswers($pager); } protected function handleArticles($pager) { if ($pager->total_items > 0) { $builder = new ArticleListBuilder(); $items = $pager->items->toArray(); $pipeA = $builder->handleArticles($items); $pipeB = $builder->handleCategories($pipeA); $pipeC = $builder->handleUsers($pipeB); $pipeD = $builder->objects($pipeC); $pager->items = $pipeD; } return $pager; } protected function handleQuestions($pager) { if ($pager->total_items > 0) { $builder = new QuestionListBuilder(); $items = $pager->items->toArray(); $pipeA = $builder->handleQuestions($items); $pipeB = $builder->handleCategories($pipeA); $pipeC = $builder->handleUsers($pipeB); $pipeD = $builder->objects($pipeC); $pager->items = $pipeD; } return $pager; } protected function handleAnswers($pager) { if ($pager->total_items > 0) { $builder = new AnswerListBuilder(); $items = $pager->items->toArray(); $pipeA = $builder->handleQuestions($items); $pipeB = $builder->handleUsers($pipeA); $pipeC = $builder->objects($pipeB); $pager->items = $pipeC; } return $pager; } }