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_if($todo->user_id !== $request->user()->id, 401, __('auth.unauthorized')); $data = $request->validated(); if (isset($data['checked'])) { $data['checked'] = $data['checked'] ? now() : null; } $todo->update($data); 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)); } }