Ejemplo n.º 1
0
 public function getQuizzes(Request $request)
 {
     $from = (int) $request->input('from', null);
     $limit = (int) $request->input('limit', 10);
     $fromPrev = $from - $limit > 0 ? $from - $limit : null;
     $quizzes = Quiz::take($limit)->orderBy('date_created')->with('user')->with('media');
     if ($from > 0) {
         $quizzes->skip($from);
     }
     $quizzes = $quizzes->get();
     $api = new ApiHandler();
     $api->setCollection($quizzes)->isCollection()->enableSideloading();
     $api->addLink('self', route('get_quizzes', ['from' => $fromPrev, 'limit' => $limit]));
     if ($quizzes->count() === $limit) {
         $api->addLink('next', route('get_quizzes', ['from' => $quizzes->last()->getKey(), 'limit' => $limit]));
     }
     if ($from) {
         $api->addLink('prev', route('get_quizzes', ['from' => $fromPrev, 'limit' => $limit]));
     }
     return $api->send();
 }