63 lines
1.4 KiB
PHP
63 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Http\Requests\ToDoRequest;
|
|
use App\Http\Resources\ToDoResource;
|
|
use App\Models\ToDo;
|
|
use Illuminate\Http\Request;
|
|
|
|
class ToDoController extends Controller
|
|
{
|
|
/**
|
|
* Display a listing of to dos.
|
|
*/
|
|
public function index(Request $request)
|
|
{
|
|
//dd($request->user()->toDos);
|
|
return response()->json(ToDoResource::collection($request->user()->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)
|
|
{
|
|
$data = $request->validated();
|
|
$data['checked'] = $request->input('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();
|
|
}
|
|
}
|