public function index($slug) { $area = $this->areaRepo->getBySlug($slug); if (is_null($area)) { return view('errors.missing'); } return view('area.posts')->withArea($area); }
/** * Execute the console command. * * @return mixed */ public function fire() { $id = $this->argument('cid'); $areas = $this->areaRepository->getByCountyId($id); if ($areas->count()) { $this->notifier->notify($areas); } }
public function store($areaSlug, $categorySlug = null) { $area = $this->areaRepo->getBySlug($areaSlug, 1, $this->user()->county_id); if (is_null($area) || !$area->open) { return view('errors.missing'); } $category = null; if (!is_null($categorySlug)) { $category = Category::where('slug', $categorySlug)->first(); if (is_null($category)) { return view('errors.missing'); } } if ($category) { $quiz = $category->quiz; } else { $quiz = $area->quiz; if ($quiz && $quiz->category_id) { return view('errors.missing'); } } if (Auth::user()->hasResponse($quiz->id)) { return json('-1'); } $questions = Input::get('question'); parse_str(Input::get('trainers'), $trainers); $max = 10000; foreach ($quiz->questions as $i => $question) { if (!$question->required) { continue; } $value = @$questions[$question->id]; if (is_array($value)) { foreach ($value as $val) { if (empty($val) || mb_strlen($val) > $max) { $value = $val; } } } $extra = in_array($question->type, ['text', 'textbox']) ? "|max:{$max}" : ''; $input['question_' . $question->id] = $value; $rules['question_' . $question->id] = 'required' . $extra; $messages['question_' . $question->id . '.required'] = $question->id; $messages['question_' . $question->id . '.max'] = trans('app.question_max', ['question' => $i + 1, 'max' => $max]); } $validator = Validator::make($input, $rules, $messages); if ($validator->fails()) { throw new FormValidationException('Validation failed', $validator->errors()); } $rresponse = Response::create(['user_id' => \Auth::user()->id, 'quiz_id' => $quiz->id]); if (isset($trainers['trainer']) && is_array($trainers['trainer'])) { $areaTrainers = $area->present()->trainers->lists('id'); foreach ($trainers['trainer'] as $choice => $id) { if (!in_array($id, $areaTrainers)) { continue; } $rresponse->trainerchoices()->save(new TrainerChoice(['trainer_id' => $id, 'choice' => ++$choice])); } } foreach ($quiz->questions as $question) { $rquestion = Question::create(['response_id' => $rresponse->id, 'question_id' => $question->id]); if ($question->type === 'dropdown' || $question->type === 'singlechoice') { $roption = Option::create(['response_question_id' => $rquestion->id, 'quiz_question_option_id' => $questions[$question->id], 'response' => e($questions[$question->id])]); } else { foreach ($question->options as $option) { if (isset($questions[$question->id][$option->id])) { $roption = Option::create(['response_question_id' => $rquestion->id, 'quiz_question_option_id' => $option->id, 'response' => e($questions[$question->id][$option->id])]); } } } } flash(true); return json(1); }