Example #1
0
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     try {
         $removed = $this->questionService->removeVote($id);
     } catch (QuestionServiceException $e) {
         return Response::json(['error' => $e->getMessage()], 406);
     }
     return Response::json($removed, 200, [], JSON_NUMERIC_CHECK);
 }
Example #2
0
 public function foldersForCrud(Request $request)
 {
     try {
         $folders = $this->questionService->getFoldersForCrud($request->get('page_size'));
     } catch (QuestionServiceException $e) {
         return Response::json(['error' => $e->getMessage()], 404);
     }
     $page = (int) Paginator::resolveCurrentPage();
     if ($page !== $folders->currentPage()) {
         return Response::json(['error' => 'not found'], 404, [], JSON_NUMERIC_CHECK);
     }
     return Response::json([['total_entries' => $folders->total(), 'currentPage' => $folders->currentPage()], $folders->items()], 200, [], JSON_NUMERIC_CHECK);
 }
 public function destroy($id)
 {
     try {
         $question = $this->questionService->removeQuestion($id);
     } catch (QuestionServiceException $e) {
         return Response::json(['error' => $e->getMessage()], 404);
     }
     return Response::json([$question], 200);
 }
Example #4
0
 /**
  * Display a listing of the resource.
  *
  * @return Response
  */
 public function index(Request $request)
 {
     $type = $request->get('type');
     if (empty($type)) {
         $type = 'list';
     }
     switch ($type) {
         case 'popular':
             $tags = $this->questionService->getTagsPopular($request->get('page_size'));
             $page = (int) Paginator::resolveCurrentPage();
             if (empty($page)) {
                 $page = 1;
             }
             if ($page !== $tags->currentPage()) {
                 return Response::json(['error' => 'not found'], 404, [], JSON_NUMERIC_CHECK);
             }
             $result = $tags->items();
             break;
         case 'search':
             $result = $this->questionService->getTags($request->get('page_size'));
             break;
         case 'list':
             $tags = $this->questionService->getTagsPopular($request->get('page_size'), $request->get('search'));
             $page = (int) Paginator::resolveCurrentPage();
             if (empty($page)) {
                 $page = 1;
             }
             if ($page !== $tags->currentPage()) {
                 return Response::json(['error' => 'not found'], 404, [], JSON_NUMERIC_CHECK);
             }
             $result = [['total_entries' => $tags->total(), 'currentPage' => $tags->currentPage()], $tags->items()];
             break;
         default:
             $result = [];
     }
     return Response::json($result, 200, [], JSON_NUMERIC_CHECK);
 }
Example #5
0
 /**
  * Display a listing of the upvoted questions.
  *
  * @return Response
  */
 public function questionsCommented(Request $request)
 {
     $count = $request->get('count');
     if (empty($count)) {
         $count = 3;
     }
     $where = [];
     $date = $request->get('date_start');
     if (!empty($date)) {
         $where['date_start'] = $date;
     }
     $date = $request->get('date_end');
     if (!empty($date)) {
         $where['date_end'] = $date;
     }
     /** @var \Illuminate\Pagination\LengthAwarePaginator $questions */
     $questions = $this->questionService->getQuestionsTopCommented($count, $where);
     $questions = $this->addLinks($request, $questions);
     return Response::json($questions, 200, [], JSON_NUMERIC_CHECK);
 }