familytree365 /
backend
| 1 | <?php |
||||||
| 2 | |||||||
| 3 | namespace App\Http\Controllers; |
||||||
| 4 | |||||||
| 5 | use App\Jobs\DnaMatching; |
||||||
| 6 | use App\Models\Dna; |
||||||
| 7 | use Auth; |
||||||
| 8 | use Illuminate\Http\Request; |
||||||
| 9 | |||||||
| 10 | class DnaController extends Controller |
||||||
| 11 | { |
||||||
| 12 | /** |
||||||
| 13 | * Display a listing of the resource. |
||||||
| 14 | * |
||||||
| 15 | * @return \Illuminate\Http\Response |
||||||
| 16 | */ |
||||||
| 17 | public function index(Request $request) |
||||||
| 18 | { |
||||||
| 19 | $query = Dna::query(); |
||||||
| 20 | |||||||
| 21 | if ($request->has('searchTerm')) { |
||||||
| 22 | $columnsToSearch = ['name']; |
||||||
| 23 | $search_term = json_decode($request->searchTerm)->searchTerm; |
||||||
| 24 | if (! empty($search_term)) { |
||||||
| 25 | $searchQuery = '%'.$search_term.'%'; |
||||||
| 26 | foreach ($columnsToSearch as $column) { |
||||||
| 27 | $query->orWhere($column, 'LIKE', $searchQuery); |
||||||
| 28 | } |
||||||
| 29 | } |
||||||
| 30 | } |
||||||
| 31 | |||||||
| 32 | if ($request->has('columnFilters')) { |
||||||
| 33 | $filters = get_object_vars(json_decode($request->columnFilters)); |
||||||
| 34 | |||||||
| 35 | foreach ($filters as $key => $value) { |
||||||
| 36 | if (! empty($value)) { |
||||||
| 37 | $query->orWhere($key, 'like', '%'.$value.'%'); |
||||||
| 38 | } |
||||||
| 39 | } |
||||||
| 40 | } |
||||||
| 41 | |||||||
| 42 | if ($request->has('sort.0')) { |
||||||
| 43 | $sort = json_decode($request->sort[0]); |
||||||
| 44 | $query->orderBy($sort->field, $sort->type); |
||||||
| 45 | } |
||||||
| 46 | |||||||
| 47 | if ($request->has('perPage')) { |
||||||
| 48 | $rows = $query->paginate($request->perPage); |
||||||
| 49 | } |
||||||
| 50 | |||||||
| 51 | return $rows; |
||||||
|
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
Loading history...
|
|||||||
| 52 | } |
||||||
| 53 | |||||||
| 54 | /** |
||||||
| 55 | * Show the form for creating a new resource. |
||||||
| 56 | * |
||||||
| 57 | * @return \Illuminate\Http\Response |
||||||
| 58 | */ |
||||||
| 59 | public function create() |
||||||
| 60 | { |
||||||
| 61 | // |
||||||
| 62 | } |
||||||
| 63 | |||||||
| 64 | /** |
||||||
| 65 | * Store a newly created resource in storage. |
||||||
| 66 | * |
||||||
| 67 | * @param \Illuminate\Http\Request $request |
||||||
| 68 | * @return \Illuminate\Http\Response |
||||||
| 69 | */ |
||||||
| 70 | public function store(Request $request) |
||||||
| 71 | { |
||||||
| 72 | if ($request->hasFile('file')) { |
||||||
| 73 | if ($request->file('file')->isValid()) { |
||||||
| 74 | try { |
||||||
| 75 | $currentUser = Auth::user(); |
||||||
| 76 | $file_name = 'dna_'.$request->file('file')->getClientOriginalName().uniqid().'.'.$request->file('file')->extension(); |
||||||
| 77 | $request->file->storeAs('dna', $file_name); |
||||||
| 78 | define('STDIN', fopen('php://stdin', 'r')); |
||||||
| 79 | $random_string = unique_random('dnas', 'variable_name', 5); |
||||||
| 80 | $var_name = 'var_'.$random_string; |
||||||
| 81 | $filename = 'app/dna/'.$file_name; |
||||||
|
0 ignored issues
–
show
|
|||||||
| 82 | $user_id = $currentUser->id; |
||||||
|
0 ignored issues
–
show
|
|||||||
| 83 | $dna = new Dna(); |
||||||
| 84 | $dna->name = 'DNA Kit for user '.$user_id; |
||||||
| 85 | $dna->user_id = $user_id; |
||||||
| 86 | $dna->variable_name = $var_name; |
||||||
| 87 | $dna->file_name = $file_name; |
||||||
| 88 | $dna->save(); |
||||||
| 89 | DnaMatching::dispatch($currentUser, $var_name, $file_name); |
||||||
| 90 | |||||||
| 91 | return [ |
||||||
|
0 ignored issues
–
show
|
|||||||
| 92 | 'message' => __('The dna was successfully created'), |
||||||
| 93 | 'redirect' => 'dna.edit', |
||||||
| 94 | 'param' => ['dna' => $dna->id], |
||||||
| 95 | ]; |
||||||
| 96 | } catch (\Exception $e) { |
||||||
| 97 | return $e->getMessage(); |
||||||
|
0 ignored issues
–
show
|
|||||||
| 98 | } |
||||||
| 99 | } |
||||||
| 100 | |||||||
| 101 | return ['File corrupted']; |
||||||
|
0 ignored issues
–
show
|
|||||||
| 102 | } |
||||||
| 103 | |||||||
| 104 | return response()->json(['Not uploaded'], 422); |
||||||
|
0 ignored issues
–
show
|
|||||||
| 105 | } |
||||||
| 106 | |||||||
| 107 | /** |
||||||
| 108 | * Display the specified resource. |
||||||
| 109 | * |
||||||
| 110 | * @param int $id |
||||||
| 111 | * @return \Illuminate\Http\Response |
||||||
| 112 | */ |
||||||
| 113 | public function show($id) |
||||||
| 114 | { |
||||||
| 115 | return Dna::find($id); |
||||||
|
0 ignored issues
–
show
|
|||||||
| 116 | } |
||||||
| 117 | |||||||
| 118 | /** |
||||||
| 119 | * Show the form for editing the specified resource. |
||||||
| 120 | * |
||||||
| 121 | * @param int $id |
||||||
| 122 | * @return \Illuminate\Http\Response |
||||||
| 123 | */ |
||||||
| 124 | public function edit($id) |
||||||
|
0 ignored issues
–
show
The parameter
$id is not used and could be removed.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for parameters that have been defined for a function or method, but which are not used in the method body. Loading history...
|
|||||||
| 125 | { |
||||||
| 126 | // |
||||||
| 127 | } |
||||||
| 128 | |||||||
| 129 | /** |
||||||
| 130 | * Update the specified resource in storage. |
||||||
| 131 | * |
||||||
| 132 | * @param \Illuminate\Http\Request $request |
||||||
| 133 | * @param int $id |
||||||
| 134 | * @return \Illuminate\Http\Response |
||||||
| 135 | */ |
||||||
| 136 | public function update(Request $request, $id) |
||||||
|
0 ignored issues
–
show
The parameter
$request is not used and could be removed.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for parameters that have been defined for a function or method, but which are not used in the method body. Loading history...
The parameter
$id is not used and could be removed.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for parameters that have been defined for a function or method, but which are not used in the method body. Loading history...
|
|||||||
| 137 | { |
||||||
| 138 | } |
||||||
| 139 | |||||||
| 140 | /** |
||||||
| 141 | * Remove the specified resource from storage. |
||||||
| 142 | * |
||||||
| 143 | * @param int $id |
||||||
| 144 | * @return \Illuminate\Http\Response |
||||||
| 145 | */ |
||||||
| 146 | public function destroy($id) |
||||||
| 147 | { |
||||||
| 148 | $user = auth()->user(); |
||||||
| 149 | $dna = Dna::find($id); |
||||||
| 150 | if ($user->id == $dna->user_id) { |
||||||
| 151 | $dna->delete(); |
||||||
| 152 | |||||||
| 153 | return [ |
||||||
|
0 ignored issues
–
show
|
|||||||
| 154 | 'message' => __('The dna was successfully deleted'), |
||||||
| 155 | 'redirect' => 'dna.index', |
||||||
| 156 | ]; |
||||||
| 157 | } else { |
||||||
| 158 | return [ |
||||||
|
0 ignored issues
–
show
|
|||||||
| 159 | 'message' => __('The dna could not be deleted'), |
||||||
| 160 | 'redirect' => 'dna.index', |
||||||
| 161 | ]; |
||||||
| 162 | } |
||||||
| 163 | } |
||||||
| 164 | } |
||||||
| 165 |