Example #1
0
 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);
     }
 }
Example #3
0
 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);
 }