From b7bad5f985628c05bd493b0ae5cd5f771134ecf4 Mon Sep 17 00:00:00 2001 From: Michal Feher Date: Fri, 9 Jan 2026 13:47:48 +0100 Subject: [PATCH] refactor(SubTaskController): improve code formatting and consistency in validation and response handling --- app/.env.development | 1 - be/app/Http/Controllers/SubTaskController.php | 127 +++++++++--------- 2 files changed, 63 insertions(+), 65 deletions(-) delete mode 100644 app/.env.development diff --git a/app/.env.development b/app/.env.development deleted file mode 100644 index 24f43d7..0000000 --- a/app/.env.development +++ /dev/null @@ -1 +0,0 @@ -VUE_APP_WAXIOS_URL=http://127.0.0.1:8001/api/ \ No newline at end of file diff --git a/be/app/Http/Controllers/SubTaskController.php b/be/app/Http/Controllers/SubTaskController.php index e3d3a43..60ae2c0 100644 --- a/be/app/Http/Controllers/SubTaskController.php +++ b/be/app/Http/Controllers/SubTaskController.php @@ -39,11 +39,11 @@ class SubTaskController extends Controller $validator = Validator::make($request->all(), [ 'start' => 'required', - 'end' => 'required', + 'end' => 'required', ]); $validator->after(function ($validator) use ($parameters) { - if ( ! isset($parameters['employee_id']) && ! isset($parameters['team_id'])) { + if (! isset($parameters['employee_id']) && ! isset($parameters['team_id'])) { $validator->errors()->add( 'error', 'You must provide either employee_id or team_id.' ); @@ -55,7 +55,7 @@ class SubTaskController extends Controller } $start = Carbon::parse($parameters['start']); - $end = Carbon::parse($parameters['end'])->addDay(); + $end = Carbon::parse($parameters['end'])->addDay(); if (isset($parameters['team_id'])) { // ak je zadany team, tak najdem vsetkych userov, ktori su v tomto teame. potom najdem vsetky subtasky, ktore su priradene ludom v tomto teame. nevyhladavam na zaklade team_id v master_taskoch, pretoze toto je nepresne. Jandl chce vidiet tasky aj pre jednotlivcov v danom teame aj ked ten task nebol assignuty pod tymto teamom @@ -73,10 +73,10 @@ class SubTaskController extends Controller } elseif (isset($parameters['user_id'])) { $subtasks = SubTask::published() ->where('user_id', $parameters['user_id'])->whereHas('timeblocks', - function ($query) use ($start, $end) { - $query->where('start', '>', $start); - $query->where('end', '<', $end); - })->get(); + function ($query) use ($start, $end) { + $query->where('start', '>', $start); + $query->where('end', '<', $end); + })->get(); $userIdArray = [$parameters['user_id']]; } @@ -116,7 +116,7 @@ class SubTaskController extends Controller ->get(); return response()->json([ - 'subtasks' => SubTaskResource::collection($subtasks) + 'subtasks' => SubTaskResource::collection($subtasks), ], 200); } @@ -141,7 +141,7 @@ class SubTaskController extends Controller ->get(); return response()->json([ - 'subtasks' => SubTaskResource::collection($subtasks) + 'subtasks' => SubTaskResource::collection($subtasks), ], 200); } @@ -162,7 +162,7 @@ class SubTaskController extends Controller } return response()->json([ - 'subtasks' => SubTaskResource::collection($query->get()) + 'subtasks' => SubTaskResource::collection($query->get()), ], 200); } @@ -206,14 +206,14 @@ class SubTaskController extends Controller if ($isDraft) { // Pripravíme dáta pre draft $draftData = [ - 'user_id' => $creatorId, - 'created_by' => $creatorId, - 'title' => $request->all()['data']['title'] ?? null, - 'description' => $request->all()['data']['description'] ?? null, - 'deadline' => $request->all()['data']['deadline'] ?? null, + 'user_id' => $creatorId, + 'created_by' => $creatorId, + 'title' => $request->all()['data']['title'] ?? null, + 'description' => $request->all()['data']['description'] ?? null, + 'deadline' => $request->all()['data']['deadline'] ?? null, 'estimated_time' => 0, // celkový odhadovaný čas sa vypočíta z employees - 'is_draft' => true, - 'draft_data' => $request->all()['data']['employees'], // uložíme všetky employees data + 'is_draft' => true, + 'draft_data' => $request->all()['data']['employees'], // uložíme všetky employees data ]; // Vypočítame celkový odhadovaný čas @@ -230,8 +230,8 @@ class SubTaskController extends Controller } return response()->json([ - 'message' => 'Draft created successfully', - 'subtasks' => SubTaskResource::collection([$subtask]) + 'message' => 'Draft created successfully', + 'subtasks' => SubTaskResource::collection([$subtask]), ], 201); } @@ -240,13 +240,13 @@ class SubTaskController extends Controller $data['data'] = $request->all()['data']; 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']['title']) ? $request->all()['data']['title'] : null; + $data['data']['employees'][$key]['user_id'] = $employee['id']; + $data['data']['employees'][$key]['title'] = isset($request->all()['data']['title']) ? $request->all()['data']['title'] : null; $data['data']['employees'][$key]['estimated_time'] = $employee['duration']; - $data['data']['employees'][$key]['created_by'] = $creatorId; - $data['data']['employees'][$key]['description'] = $request->all()['data']['description']; - $data['data']['employees'][$key]['deadline'] = $request->all()['data']['deadline']; - $data['data']['employees'][$key]['is_draft'] = false; + $data['data']['employees'][$key]['created_by'] = $creatorId; + $data['data']['employees'][$key]['description'] = $request->all()['data']['description']; + $data['data']['employees'][$key]['deadline'] = $request->all()['data']['deadline']; + $data['data']['employees'][$key]['is_draft'] = false; } $request->merge($data); @@ -255,7 +255,7 @@ class SubTaskController extends Controller // syncnutie timeblocks foreach ($request->all()['data']['employees'] as $key => $employee) { - if ( ! isset($data['data']['employees'][$key]['timeblocks']) || $data['data']['employees'][$key]['timeblocks'] == null) { + if (! isset($data['data']['employees'][$key]['timeblocks']) || $data['data']['employees'][$key]['timeblocks'] == null) { continue; } @@ -277,8 +277,8 @@ class SubTaskController extends Controller } return response()->json([ - 'message' => 'Sub Task created successfully', - 'subtasks' => SubTaskResource::collection($subtasks) + 'message' => 'Sub Task created successfully', + 'subtasks' => SubTaskResource::collection($subtasks), ], 201); } @@ -287,9 +287,9 @@ class SubTaskController extends Controller { $subtask = SubTask::find($id); - if (!$subtask) { + if (! $subtask) { return response()->json([ - 'message' => 'Subtask not found.' + 'message' => 'Subtask not found.', ], 404); } @@ -309,7 +309,7 @@ class SubTaskController extends Controller // validácia pri publikovaní draftu (is_draft: false) $isPublishing = $subtask->is_draft && isset($request->all()['data']['is_draft']) && $request->all()['data']['is_draft'] == false; - + // Pri publikovaní draftu s draft_data (viacero zamestnancov) - vytvoríme subtasky pre každého if ($isPublishing && $subtask->draft_data) { return $this->publishDraftWithMultipleEmployees($subtask, $request); @@ -318,18 +318,18 @@ class SubTaskController extends Controller if ($isPublishing) { $publishValidator = Validator::make([ 'master_task_id' => $subtask->master_task_id, - 'user_id' => $request->all()['data']['employee_id'] ?? $subtask->user_id, + 'user_id' => $request->all()['data']['employee_id'] ?? $subtask->user_id, 'estimated_time' => $request->all()['data']['duration'] ?? $subtask->estimated_time, ], [ 'master_task_id' => 'required', - 'user_id' => 'required', + 'user_id' => 'required', 'estimated_time' => 'required|numeric|min:0', ]); if ($publishValidator->fails()) { return response()->json([ 'message' => 'Draft cannot be published. Missing required fields.', - 'errors' => $publishValidator->errors() + 'errors' => $publishValidator->errors(), ], 400); } } @@ -341,7 +341,7 @@ class SubTaskController extends Controller } // Pre drafty je validácia duration voliteľná - if (!$subtask->is_draft) { + if (! $subtask->is_draft) { $validator = Validator::make($request->all(), [ 'data.duration' => 'required', ]); @@ -363,13 +363,13 @@ 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'] ?? $subtask->user_id; - $data['data']['title'] = isset($request->all()['data']['title']) ? $request->all()['data']['title'] : null; - $data['data']['deadline'] = isset($request->all()['data']['deadline']) ? $request->all()['data']['deadline'] : null; + $data['data'] = $request->all()['data']; + $data['data']['user_id'] = $request->all()['data']['employee_id'] ?? $subtask->user_id; + $data['data']['title'] = isset($request->all()['data']['title']) ? $request->all()['data']['title'] : null; + $data['data']['deadline'] = isset($request->all()['data']['deadline']) ? $request->all()['data']['deadline'] : null; $data['data']['estimated_time'] = $request->all()['data']['duration'] ?? $subtask->estimated_time; - $data['data']['updated_by'] = User::getUserIdFromBearerToken($request->bearerToken()); - + $data['data']['updated_by'] = User::getUserIdFromBearerToken($request->bearerToken()); + // publikovanie draftu if (isset($request->all()['data']['is_draft'])) { $data['data']['is_draft'] = $request->all()['data']['is_draft']; @@ -400,7 +400,7 @@ class SubTaskController extends Controller return response()->json([ 'message' => $message, - 'subtask' => new SubTaskResource($subtask) + 'subtask' => new SubTaskResource($subtask), ]); } @@ -420,15 +420,15 @@ class SubTaskController extends Controller // Validácia a doplnenie duration z timeblocks foreach ($employees as $key => $employee) { - if (!isset($employee['id'])) { + if (! isset($employee['id'])) { return response()->json([ 'message' => 'Draft cannot be published. Each employee must have id.', ], 400); } // Ak duration nie je nastavený, vypočítaj ho z timeblocks - if (!isset($employee['duration']) || $employee['duration'] === null) { - if (isset($employee['timeblocks']) && !empty($employee['timeblocks'])) { + if (! isset($employee['duration']) || $employee['duration'] === null) { + if (isset($employee['timeblocks']) && ! empty($employee['timeblocks'])) { $totalDuration = 0; foreach ($employee['timeblocks'] as $timeblock) { if (isset($timeblock['start']) && isset($timeblock['end'])) { @@ -452,20 +452,20 @@ class SubTaskController extends Controller // Vytvoríme subtask pre každého zamestnanca foreach ($employees as $employee) { $subtaskData = [ - 'user_id' => $employee['id'], - 'title' => $draft->title, - 'description' => $draft->description, - 'deadline' => $draft->deadline, + 'user_id' => $employee['id'], + 'title' => $draft->title, + 'description' => $draft->description, + 'deadline' => $draft->deadline, 'estimated_time' => $employee['duration'], - 'created_by' => $draft->created_by, - 'is_draft' => false, - 'draft_data' => null, + 'created_by' => $draft->created_by, + 'is_draft' => false, + 'draft_data' => null, ]; $newSubtask = $mastertask->subtasks()->create($subtaskData); // Sync timeblocks ak existujú - if (isset($employee['timeblocks']) && !empty($employee['timeblocks'])) { + if (isset($employee['timeblocks']) && ! empty($employee['timeblocks'])) { $newSubtask->syncTimeblocks($employee['timeblocks']); } @@ -488,8 +488,8 @@ class SubTaskController extends Controller $draft->delete(); return response()->json([ - 'message' => 'Draft published successfully', - 'subtasks' => SubTaskResource::collection($createdSubtasks) + 'message' => 'Draft published successfully', + 'subtasks' => SubTaskResource::collection($createdSubtasks), ], 201); } @@ -512,7 +512,7 @@ class SubTaskController extends Controller return response()->json([ 'message' => 'Subtask deleted successfully.', - 'subtask' => $subtask + 'subtask' => $subtask, ]); } @@ -522,7 +522,7 @@ class SubTaskController extends Controller $validator = Validator::make($request->all(), [ 'data.employee_id' => 'required', - 'data.time' => 'required', + 'data.time' => 'required', ]); // validacia, ci dany user moze submitovat timesheet - ci mu patri subtask @@ -530,7 +530,7 @@ class SubTaskController extends Controller if ($subtask->user_id != $request->all()['data']['employee_id']) { $validator->errors()->add( 'data.employee_id', - 'This user cannot submit timesheet for the selected subtask. Subtask is assigned to user with id: ' . $subtask->user_id . '.' + 'This user cannot submit timesheet for the selected subtask. Subtask is assigned to user with id: '.$subtask->user_id.'.' ); } }); @@ -540,17 +540,16 @@ class SubTaskController extends Controller } $subtask->timesheets()->insert([ - 'time' => $request->all()['data']['time'], - 'user_id' => $request->all()['data']['employee_id'], + 'time' => $request->all()['data']['time'], + 'user_id' => $request->all()['data']['employee_id'], 'sub_task_id' => $subtask->id, - "created_at" => Carbon::now(), - "updated_at" => Carbon::now(), + 'created_at' => Carbon::now(), + 'updated_at' => Carbon::now(), ]); return response()->json([ 'message' => 'Subtask timesheet submitted successfully.', - 'subtask' => $subtask + 'subtask' => $subtask, ], 201); } - }