From 721bc24c14c50f0dc84ff18ca02104ccb9377460 Mon Sep 17 00:00:00 2001 From: Michal Feher Date: Tue, 23 May 2023 14:58:19 +0200 Subject: [PATCH] POST subtask - employees array instead of employee_id --- be/app/Http/Controllers/SubTaskController.php | 47 ++++++++++++------- 1 file changed, 29 insertions(+), 18 deletions(-) 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());