85 lines
2.2 KiB
PHP
85 lines
2.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Http\Controllers\Dashboard;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Requests\NoteRequest;
|
|
use App\Http\Resources\NoteCollection;
|
|
use App\Http\Resources\NoteResource;
|
|
use App\Models\Note;
|
|
use Illuminate\Http\RedirectResponse;
|
|
use Inertia\Response as InertiaResponse;
|
|
|
|
class NoteController extends Controller
|
|
{
|
|
public function index(): InertiaResponse
|
|
{
|
|
return inertia(
|
|
'Notes/Index',
|
|
[
|
|
'notes' => new NoteCollection(
|
|
Note::query()
|
|
->orderByDesc('id')
|
|
->get()
|
|
),
|
|
]
|
|
);
|
|
}
|
|
|
|
public function create(): InertiaResponse
|
|
{
|
|
return inertia('Notes/Create');
|
|
}
|
|
|
|
public function store(NoteRequest $request): RedirectResponse
|
|
{
|
|
$note = Note::query()->create([
|
|
'title' => $request->get('title'),
|
|
'note' => $request->get('note'),
|
|
]);
|
|
|
|
return redirect()
|
|
->route('admin.note.show', compact('note'))
|
|
->with('success', 'Utworzono nową notatkę.');
|
|
}
|
|
|
|
public function show(Note $note): InertiaResponse
|
|
{
|
|
return inertia('Notes/Show', ['note' => new NoteResource($note)]);
|
|
}
|
|
|
|
public function edit(Note $note): InertiaResponse
|
|
{
|
|
return inertia('Notes/Edit', ['note' => new NoteResource($note)]);
|
|
}
|
|
|
|
public function update(NoteRequest $request, Note $note): RedirectResponse
|
|
{
|
|
$note->update([
|
|
'title' => $request->get('title'),
|
|
'note' => $request->get('note'),
|
|
]);
|
|
|
|
return redirect()
|
|
->route('admin.note.show', compact('note'))
|
|
->with('success', 'Notatka ' . $request->get('title') . ' została zaktualizowana.');
|
|
}
|
|
|
|
public function delete(Note $note): InertiaResponse
|
|
{
|
|
return inertia('Notes/ConfirmDelete', ['note' => new NoteResource($note)]);
|
|
}
|
|
|
|
public function destroy(Note $note): RedirectResponse
|
|
{
|
|
$title = $note->title;
|
|
$note->delete();
|
|
|
|
return redirect()
|
|
->route('admin.note.index')
|
|
->with('info', 'Notatka ' . $title . ' została usunięta.');
|
|
}
|
|
}
|