/** * Executes a request. * * @param request Request to execute. * * @return Response Response to send. */ public function execute(Request $request) { try { $segments = $request->getPathSegments(); if (count($segments) > 0) { $firstSegment = $segments[0]; if (array_key_exists($firstSegment, $this->controllers)) { $controller = $this->controllers[$firstSegment]; $controllerRequest = $request->consume(); $resource = $controller->getResource($controllerRequest); if (isset($resource)) { $verb = $request->getVerb(); if (method_exists($resource, $verb)) { return $resource->{$verb}($controllerRequest); } else { return Response::notSupported(); } } } } return Response::notFound(); } catch (\Exception $e) { return Response::error($e->getMessage()); } }
public static function processSort() { $sort = Input::get('sort') ? Input::get('sort') : 'created_at'; $sortType = Input::get('sortType') === 'asc' ? 'asc' : 'desc'; if (!in_array($sort, self::$sortableFields)) { Response::notFound(); } View::share(array('sort' => $sort, 'sortType' => $sortType)); return array('sort' => $sort, 'sortType' => $sortType); }
public function viewPage($urlString) { try { $page = Page::where('urlString', $urlString)->first(); if (!$page) { return Response::notFound(); } $page = Page::decodePageJson($page); return View::make('pages/viewPage')->with(array('page' => $page, 'currentPage' => 'viewPage', 'ogImage' => $page['ogData']['ogImage'], 'ogTitle' => $page['ogData']['ogTitle'], 'title' => $page['title'] ? $page['title'] : '', 'ogDescription' => $page['ogData']['ogDescription'], 'description' => $page['description'] ? $page['description'] : '')); } catch (Illuminate\Database\Eloquent\ModelNotFoundException $e) { return Response::notFound('Quiz not found'); } }
public static function processSort() { $sort = Input::get('sort') ? Input::get('sort') : 'created_at'; $sortType = Input::get('sortType') === 'asc' ? 'asc' : 'desc'; if (!in_array($sort, self::$sortableFields)) { Response::notFound(); } View::share(array('sort' => $sort, 'sortType' => $sortType)); if ($sort == 'shareRate') { $sort = DB::raw('quiz_stats.shares/quiz_stats.attempts'); } return array('sort' => $sort, 'sortType' => $sortType); }
public function not_found() { $r = Response::notFound(); $this->assertEquals(404, $r->status); }
public function saveUserAnswer($nameString, $quizId = null) { try { $quiz = Quiz::findOrFail($quizId); $user = Auth::user(); $questionId = Input::get('questionId'); $choiceId = Input::get('choiceId'); if (!$user) { return Response::json(array('error' => 'Not logged in'), 400); } $quizUserAnswer = QuizUserAnswers::firstOrNew(array('user_id' => $user->id, 'quiz_id' => $quiz->id, 'question_id' => $questionId, 'answer_id' => $choiceId)); $quizUserAnswer->save(); return Response::json(array('message' => 'Activity recorded')); } catch (Illuminate\Database\Eloquent\ModelNotFoundException $e) { return Response::notFound('Quiz not found'); } catch (Exception $e) { return Response::notFound($e->getMessage()); } }
public function quizUsers() { try { $sortOptions = self::processSort(); $activityType = Input::get('activityType'); $quizId = Input::get('quizId'); $users = null; if ($quizId) { $quiz = Quiz::findOrFail($quizId); $quizStats = $quiz->stats; $quizResultsDistribution = array(); $quizResultsDistribution = $quiz->resultDistribution(); if ($activityType) { $activityOptions = array(); if ($activityType == 'got-result') { $activityOptions = array('resultId' => Input::get('resultId')); } else { if ($activityType == 'chosen-answer') { $activityOptions = array('questionId' => Input::get('questionId'), 'answerId' => Input::get('answerId')); } } $usersQuery = self::getUsersQueryByActivity($quiz, $activityType, $activityOptions); $usersQuery = $usersQuery->orderBy($sortOptions['sort'], $sortOptions['sortType']); if (Input::get('download')) { return self::downloadEmails($usersQuery); } $users = $usersQuery->paginate(self::$perPage); //dd(DB::getQueryLog()); //dd($users->toArray()); self::addSerialNumbers($users); } $results = $quiz->results; $questions = $quiz->questions; $quizShareRate = $quizLikeRate = 0; if ($quizStats && !empty($quizStats->attempts)) { $quizShareRate = number_format($quizStats->shares / $quizStats->attempts * 100, 2); $quizLikeRate = number_format($quizStats->likes / $quizStats->attempts * 100, 2); } $last30DaysAttempts = AdminController::getLastNDaysActivity(30, 'attempt', $quiz); View::share(array('users' => $users, 'quizId' => $quizId, 'quiz' => $quiz, 'quizResults' => $results, 'quizQuestions' => $questions, 'quizStats' => $quizStats, 'quizShareRate' => $quizShareRate, 'quizLikeRate' => $quizLikeRate, 'last30DaysAttempts' => json_encode($last30DaysAttempts), 'quizResultsDistribution' => $quizResultsDistribution)); } else { } View::share(array('activityType' => $activityType, 'resultId' => Input::get('resultId'), 'questionId' => Input::get('questionId'), 'answerId' => Input::get('answerId'))); QuizController::_loadQuizes(); return View::make('admin/users/quizUsers')->with(array('currentPage' => 'quizUsers')); } catch (Illuminate\Database\Eloquent\ModelNotFoundException $e) { return Response::notFound('Quiz not found'); } catch (Exception $e) { return Response::make($e->getMessage(), 400); } }
public function profile($userId, $nameString) { $me = Auth::user(); try { $user = User::findOrFail($userId); View::share(self::getProfileOgData($user)); $listsQuery = $user->lists(); //If not logged in or if the profile is not of the logged in user, show approved lists only if (!$me || $me->id != $userId) { $listsQuery = $listsQuery->approved(); } return View::make('users.profile')->with(['user' => $user, 'lists' => $listsQuery->latest()->simplePaginate(ListController::getPerPageLimit()), 'listsCount' => $user->lists()->count(), 'showListItemStatus' => true]); } catch (Illuminate\Database\Eloquent\ModelNotFoundException $e) { return Response::notFound(); } }
public function viewListsOfTag($tagSlug) { $matchingTag = Conner\Tagging\Tag::where('slug', $tagSlug)->get(); if (!$matchingTag->count()) { return Response::notFound(); } $matchingTag = $matchingTag[0]; return $this->index(['stream' => 'ofTag', 'ofTag' => $matchingTag->name]); }