/** * Store a newly created resource in storage. * * @return Response */ public function store($quizId) { $quiz = Quiz::findOrFail($quizId); $input = Input::only('question_type', 'question', 'required', 'display_order'); $validator = Validator::make($input, ['question_type' => 'required|in:text,textbox,singlechoice,multiplechoice,dropdown', 'question' => 'required', 'required' => 'in:0,1', 'display_order' => 'numeric']); if ($validator->fails()) { throw new FormValidationException('Validation failed', $validator->errors()); } $quiz->questions()->save(new Question(['question_type' => $input['question_type'], 'question' => $input['question'], 'required' => $input['required'] ?: 0, 'display_order' => $input['display_order'] ?: 0])); return json(1); }
/** * Run the database seeds. * * @return void */ public function run() { Eloquent::unguard(); DB::table('quiz')->truncate(); DB::table('quiz_questions')->truncate(); DB::table('quiz_question_options')->truncate(); $quizzes = [['area_id' => 1, 'category_id' => 3, 'questions' => [['question' => 'Lorem ipsum dolor sit amet, consectetur adipisicing elit.', 'question_type' => 'text', 'options' => [['option' => 'Q']]], ['question' => 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Molestiae recusandae vero inventore corrupti culpa repudiandae, minus dolor, ea dolores at, sed sequi, consectetur atque alias nesciunt. ', 'question_type' => 'textbox', 'options' => [['option' => ''], ['option' => '']]], ['question' => 'Which of the examples below, can be classified as a project?', 'question_type' => 'singlechoice', 'options' => [['option' => 'Taking the garbage out'], ['option' => 'Building a house'], ['option' => 'Falling in love']]], ['question' => 'Which of the examples below, can be classified as a project?', 'question_type' => 'multiplechoice', 'options' => [['option' => 'Taking the garbage out'], ['option' => 'Building a house'], ['option' => 'Falling in love']]], ['question' => 'Which of the examples below, can be classified as a project?', 'question_type' => 'dropdown', 'options' => [['option' => 'Taking the garbage out'], ['option' => 'Building a house'], ['option' => 'Falling in love']]]]]]; foreach ($quizzes as $data) { $quiz = Quiz::create(['area_id' => $data['area_id'], 'category_id' => isset($data['category_id']) ? $data['category_id'] : null]); foreach ($data['questions'] as $question) { $options = $question['options']; unset($question['options']); $question = $quiz->questions()->save(new Question($question)); foreach ($options as $option) { $question->options()->save(new Option($option)); } } } }
public function api2() { $areaId = Input::get('a'); $categoryId = Input::get('c'); $query = Quiz::where('area_id', $areaId); if ($categoryId) { $query = $query->where('category_id', $categoryId); } if (!($quiz = $query->first(['id', 'area_id']))) { return abort(404); } $ok = false; foreach ($quiz->area->groups as $group) { foreach ($group->trainers as $trainer) { if ((int) $trainer->pivot->user_id === (int) $this->userId) { $ok = true; } } } if (!$ok) { return view('errors.unauthorized'); } $query = $quiz->responses()->join('users', 'users.id', '=', 'user_id')->orderBy('response.created_at'); $applicants = $query->get(['users.id as uid', 'email', 'full_name', 'school', 'phone', 'response.id']); $data = []; foreach ($applicants as $applicant) { $responses = []; foreach ($applicant->questions as $rquestion) { if (!$rquestion->question) { continue; } $answers = []; $roptions = $rquestion->options->lists('response', 'quiz_question_option_id'); foreach ($rquestion->question->options as $option) { if (array_key_exists($option->id, $roptions)) { if ($rquestion->question->type == 'text' || $rquestion->question->type == 'textbox') { $answer = html_entity_decode($roptions[$option->id]); } else { $answer = true; } } else { $answer = false; } $answers[] = ['option' => $option->option ? html_entity_decode($option->option) : null, 'answer' => $answer]; } $responses[] = ['question' => $rquestion->question->question, 'question_type' => $rquestion->question->type, 'answers' => $answers]; } $data[] = ['app_id' => (int) $applicant->id, 'user_id' => (int) $applicant->uid, 'name' => html_entity_decode($applicant->full_name), 'email' => $applicant->email, 'phone' => $applicant->phone, 'school' => html_entity_decode($applicant->school), 'responses' => $responses]; } return json(array_values($data), 200); }
/** * Remove the specified resource from storage. * * @param int $id * @return Response */ public function destroy($id) { with(Quiz::findOrFail($id))->delete(); return json(1); }
/** * Display a listing of the resource. * * @return Response */ public function index($id) { $quiz = Quiz::findOrFail($id); $responses = Response::where('quiz_id', $quiz->id)->paginate(self::PER_PAGE); return view('admin.quiz.responses.index')->withQuiz($quiz)->withResponses($responses); }