ClauseController.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use App\Models\Clause;
  5. use Illuminate\Http\JsonResponse;
  6. use Illuminate\Support\Facades\DB;
  7. use Ramsey\Uuid\Uuid;
  8. use App\Models\StatTree;
  9. use App\Models\StatTreeLine;
  10. use App\Models\StatTreeLineClause;
  11. class ClauseController extends Controller
  12. {
  13. public function list(){
  14. $clauses = Clause::all();
  15. return view('app.stat-tree.clauses.list', compact('clauses'));
  16. }
  17. public function dashboard(Clause $clause){
  18. return view('app.stat-tree.clauses.single', compact('clause'));
  19. }
  20. // view
  21. public function replaceAllPage(Request $request){
  22. return view('app.stat-tree.clauses.replace-all');
  23. }
  24. // process
  25. public function replaceAll(Request $request){
  26. $data = $request->get('data');
  27. $rows = json_decode($data);
  28. Clause::truncate();
  29. //Should we truncate related data?
  30. StatTree::truncate();
  31. StatTreeLine::truncate();
  32. StatTreeLineClause::truncate();
  33. for($i = 0; $i < count($rows); $i++){
  34. $row = $rows[$i];
  35. $clause = new Clause();
  36. $nextId = DB::select("select nextval('clause_id_seq')");
  37. $clause->id = $nextId[0]->nextval;
  38. $clause->uid = Uuid::uuid4();
  39. $clause->model = $row[0];
  40. $clause->question = $row[1];
  41. $clause->answer = $row[2];
  42. $clause->label = $row[1] . ($row[2] && $row[2] != '-' ? ' ' . $row[2] : '');
  43. $clause->clause_text = $row[3];
  44. $clause->position_index = $i;
  45. $clause->save();
  46. }
  47. return $this->pass();
  48. }
  49. }