diff --git a/be/app/Http/Controllers/SubTaskController.php b/be/app/Http/Controllers/SubTaskController.php index 8c9ea77..b567d6b 100644 --- a/be/app/Http/Controllers/SubTaskController.php +++ b/be/app/Http/Controllers/SubTaskController.php @@ -130,18 +130,17 @@ class SubTaskController extends Controller public function store($mastertask_id, Request $request) { $validator = Validator::make($request->all(), [ - 'data.employee_id' => 'required', - 'data.duration' => 'required', + 'data.employees' => 'required', ]); // validacia, ci uz subtask pre tohto usera a mastertask neexistuje - $validator->after(function ($validator) use ($mastertask_id, $request) { - if (SubTask::where('master_task_id', $mastertask_id)->where('user_id', $request->all()['data']['employee_id'])->exists()) { - $validator->errors()->add( - 'data.employee_id', 'Sub task already exists for this employee and master task.' - ); - } - }); +// $validator->after(function ($validator) use ($mastertask_id, $request) { +// if (SubTask::where('master_task_id', $mastertask_id)->where('user_id', $request->all()['data']['employee_id'])->exists()) { +// $validator->errors()->add( +// 'data.employee_id', 'Sub task already exists for this employee and master task.' +// ); +// } +// }); if ($validator->fails()){ return response()->json($validator->errors(), 400); @@ -159,27 +158,38 @@ class SubTaskController extends Controller // upratanie requestu, pretoze frontend pouziva inu nomenklaturu fieldov ako appka $data['data'] = $request->all()['data']; - $data['data']['user_id'] = $request->all()['data']['employee_id']; - $data['data']['estimated_time'] = $request->all()['data']['duration']; - $data['data']['created_by'] = User::getUserIdFromBearerToken($request->bearerToken()); + + foreach ( $request->all()['data']['employees'] as $key => $employee ) { + $data['data']['employees'][$key]['user_id'] = $employee['id']; + $data['data']['employees'][$key]['title'] = isset($request->all()['data']['name']) ? $request->all()['data']['name']: null; + $data['data']['employees'][$key]['estimated_time'] = $employee['duration']; + $data['data']['employees'][$key]['created_by'] = User::getUserIdFromBearerToken($request->bearerToken()); + $data['data']['employees'][$key]['description'] = $request->all()['data']['description']; + } $request->merge($data); $mastertask = MasterTask::find($mastertask_id); - $subtask = $mastertask->subtasks()->create($request->all()['data']); - - // syncnutie timeblocks - $subtask->syncTimeblocks($data['data']['timeblocks']); + $subtasks = $mastertask->subtasks()->createMany($request->all()['data']['employees']); // upload attachmentu if ($request->file('data')) { $attachments = Attachment::uploadAttachmentsToS3($request->file('data')['files'], $mastertask); - $subtask->attachments()->createMany($attachments); + } + + foreach ( $subtasks as $subtask ) { + // syncnutie timeblocks + $subtask->syncTimeblocks($data['data']['timeblocks']); + + // upload attachmentu + if ($request->file('data')) { + $subtask->attachments()->createMany($attachments); + } } return response()->json([ 'message' => 'Sub Task created successfully', - 'subtask' => $subtask + 'subtasks' => $subtasks ], 201); } @@ -224,6 +234,7 @@ class SubTaskController extends Controller // upratanie requestu, pretoze frontend pouziva inu nomenklaturu fieldov ako appka $data['data'] = $request->all()['data']; $data['data']['user_id'] = $request->all()['data']['employee_id']; + $data['data']['title'] = isset($request->all()['data']['name']) ? $request->all()['data']['name'] : null; $data['data']['estimated_time'] = $request->all()['data']['duration']; $data['data']['updated_by'] = User::getUserIdFromBearerToken($request->bearerToken());