Ejemplo n.º 1
0
 public function saveQuestion(Request $request)
 {
     // [1] CHECK IF THE BLUEPRINT EXIST AND THE USER CAN CHANGE IT
     $user = Auth::user();
     if ($user->level == 3) {
         $blueprint = Blueprint::find($request->input('blueprint_id'));
     } else {
         $blueprint = Blueprint::where("user_id", $user->id)->find($request->input('blueprint_id'));
     }
     if (!$blueprint) {
         if ($user->level == 3) {
             abort(404, 'El formulario no existe!');
         } else {
             abort(403, 'El formulario no pertenece al usuario');
         }
     }
     // [2] CREATE THE QUESTION OBJECT
     $question = new Question();
     $question->user_id = $user->id;
     $question->blueprint_id = $blueprint->id;
     $question->section_id = (int) $request->input("section_id");
     $question->question = $request->input("question");
     $question->is_description = $request->input("is_description");
     //$question->is_location    = $request->input("is_location");
     $question->type = $request->input("type");
     $question->save();
     $options = [];
     // [3] IF THE QUESTION HAS OPTIONS, CREATE THEM
     if (!empty($request->input('options'))) {
         $val = 1;
         foreach ($request->input('options') as $opt) {
             $option = new Option();
             $option->question_id = $question->id;
             $option->blueprint_id = $blueprint->id;
             $option->description = $opt;
             $option->value = $val;
             $option->name = uniqid();
             $option->order_num = $val;
             $option->save();
             $options[] = $option;
             $val++;
         }
         $remove_rule = 0;
     } else {
         $remove_rule = Rule::where("blueprint_id", $blueprint->id)->where("question_id", $question->id)->delete();
     }
     $question->options = $options;
     $question->remove_rule = $remove_rule;
     // [4] GENERATE A NEW TOKEN TO PREVENT TOKEN MISSMATCH
     $question->new_token = csrf_token();
     // [5] RETURN THE JSON
     return response()->json($question)->header('Access-Control-Allow-Origin', '*');
 }
Ejemplo n.º 2
0
 private function _search($request)
 {
     $title = $request->input("title", null);
     $category = $request->input("category", null);
     $survey_subs = $request->input("survey-subs", null);
     $tags = $request->input("survey-tags", null);
     $query = Blueprint::where(function ($q) use($request, $title, $category, $tags, $survey_subs) {
         // search title
         if (!empty($title)) {
             //$q->where("title", "like", "%". $request->input("title") . "%");
             //$q->where("title", "like", "%". $request->input("title") . "%");
             $q->where(function ($query) use($title) {
                 $query->where("title", "like", "%{$title}%")->orWhere("category", "like", "%{$title}%")->orWhere("subcategory", "like", "%{$title}%")->orWhere("branch", "like", "%{$title}%")->orWhere("unit", "like", "%{$title}%")->orWhere("tags", "like", "%{$title}%");
             });
         }
         // search category
         if (!empty($category)) {
             $q->where("category", $request->input("category"));
         }
         // search subcategory
         if (!empty($survey_subs)) {
             $subs = $request->input("survey-subs");
             $q->where(function ($q) use($subs) {
                 $first = array_shift($subs);
                 $q->where("subcategory", "like", "%" . $first . "%");
                 foreach ($subs as $sub) {
                     $q->orWhere("subcategory", "like", "%" . $sub . "%");
                 }
             });
         }
         // search tags
         if (!empty($tags)) {
             $tags = $request->input("survey-tags");
             $q->where(function ($q) use($tags) {
                 $first = array_shift($tags);
                 $q->where("tags", "like", "%" . $first . "%");
                 foreach ($tags as $tag) {
                     $q->orWhere("tags", "like", "%" . $tag . "%");
                 }
             });
         }
     });
     return $query;
 }
Ejemplo n.º 3
0
 public function search(Request $request)
 {
     $user = Auth::user();
     $query = $request->input("query");
     if ($user->level == 3) {
         $response = Blueprint::where("title", "like", "%{$query}%")->get();
     } else {
         $response = $user->blueprints()->where("title", "like", "%{$query}%")->get();
     }
     return response()->json($response)->header('Access-Control-Allow-Origin', '*');
 }