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', '*'); }
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; }
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', '*'); }