mirror of
https://bitbucket.org/studiotem/jandl-taskmanager-app.git
synced 2026-10-21 14:29:34 +00:00
refactor(SubTaskController): improve code formatting and consistency in validation and response handling
This commit is contained in:
1 parent
b101da8da5
commit
b7bad5f985
2 files changed
+63
-65
No files matched your search
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user