add finish todos list

This commit is contained in:
Romulus21
2024-02-15 21:38:05 +01:00
parent 04b8f7566c
commit 583d128bf8
9 changed files with 90 additions and 10 deletions

View File

@@ -77,9 +77,7 @@ class TimeTrackerController extends Controller
public function stopUserTimeTracker(Request $request)
{
$request->user()->currentTimeTracker()->update(['end_at' => now()]);
$request->user()->time_tracker_id = null;
$request->user()->save();
$request->user()->stopCurrentTimeTracker();
return response()->json([], 204);
}

View File

@@ -14,8 +14,9 @@ class ToDoController extends Controller
*/
public function index(Request $request)
{
//dd($request->user()->toDos);
return response()->json(ToDoResource::collection($request->user()->toDos));
$toDos = $request->user()->toDos()->whereNull('checked')->get();
return response()->json(ToDoResource::collection($toDos));
}
/**
@@ -47,6 +48,10 @@ class ToDoController extends Controller
$data['checked'] = $request->input('checked') ? now() : null;
$todo->update($data);
if ($request->user()->currentTimeTracker->to_do_id === $todo->id) {
$request->user()->stopCurrentTimeTracker();
}
return response()->json(new ToDoResource($todo));
}
@@ -59,4 +64,14 @@ class ToDoController extends Controller
return response()->noContent();
}
public function finished(Request $request)
{
$toDos = $request->user()->toDos()
->whereNotNull('checked')
->orderBy('checked', 'desc')
->get();
return response()->json(ToDoResource::collection($toDos));
}
}

View File

@@ -18,7 +18,7 @@ class ToDoResource extends JsonResource
'id' => $this->id,
'user_id' => $this->user_id,
'name' => $this->name,
'checked' => (boolean) $this->checked,
'checked' => $this->checked,
];
}
}

View File

@@ -55,4 +55,11 @@ class User extends Authenticatable
{
return $this->hasMany(ToDo::class);
}
public function stopCurrentTimeTracker(): void
{
$this->currentTimeTracker()->update(['end_at' => now()]);
$this->time_tracker_id = null;
$this->save();
}
}