user()->toDos()->whereNull('checked')->get(); return response()->json(ToDoResource::collection($toDos)); } /** * Store newly to do created resource in storage. */ public function store(ToDoRequest $request) { $data = $request->validated(); $toDo = $request->user()->toDos()->create($data); return response()->json(new ToDoResource($toDo), 201); } /** * Display the specified to do. */ public function show(ToDo $todo) { return response()->json(new ToDoResource($todo)); } /** * Update the specified resource in storage. */ public function update(ToDoRequest $request, ToDo $todo) { abort(501, "xoxo"); $data = $request->validated(); $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)); } /** * Remove the specified to do resource from storage. */ public function destroy(ToDo $todo) { $todo->delete(); return response()->noContent(); } public function finished(Request $request) { $toDos = $request->user()->toDos() ->whereNotNull('checked') ->orderBy('checked', 'desc') ->get(); return response()->json(ToDoResource::collection($toDos)); } }