all()); $validator = Validator::make($request->all(), [ 'data.name' => 'required', 'data.description' => 'required', 'data.duration' => 'required', 'data.deadline' => 'required', 'data.project_id' => 'required', ]); if($validator->fails()){ return response()->json($validator->errors(), 400); } // upratanie requestu, pretoze frontend pouziva inu nomenklaturu fieldov ako appka $data['data'] = $request->all()['data']; $data['data']['title'] = $request->all()['data']['name']; $data['data']['estimated_time'] = $request->all()['data']['duration']; foreach ( $data['data']['employees'] as $key => $employee ) { $data['data']['employees'][$key]['user_id'] = $employee['id']; $data['data']['employees'][$key]['estimated_time'] = $employee['duration']; } $request->merge($data); $mastertask = MasterTask::create($request->all()['data']); $mastertask->subtasks()->createMany($request->all()['data']['employees']); return response()->json([ 'message' => 'Master Task created successfully', 'mastertask' => $mastertask ], 201); } public function delete($id) { $mastertask = MasterTask::find($id); // nedovolit zmazanie mastertasku, ak existuje aspon jeden subtask s timesheetom foreach ($mastertask->subtasks as $subtask) { if ($subtask->timesheets()->exists()) { return response()->json([ 'message' => 'Cannot delete subtask with submitted timesheets.', ], 400); } } $mastertask->attachments()->delete(); foreach ( $mastertask->subtasks as $subtask ) { $subtask->timeblocks()->delete(); } $mastertask->subtasks()->delete(); $mastertask->delete(); return response()->json([ 'message' => 'Master Task deleted successfully.', 'mastertask' => $mastertask ]); } }