diff --git a/app/Http/Controllers/Dashboard/MessageController.php b/app/Http/Controllers/Dashboard/MessageController.php index a2376e6..e28ea22 100644 --- a/app/Http/Controllers/Dashboard/MessageController.php +++ b/app/Http/Controllers/Dashboard/MessageController.php @@ -8,6 +8,7 @@ use App\Http\Controllers\Controller; use App\Http\Resources\MessageCollection; use App\Http\Resources\MessageResource; use App\Models\Message; +use Illuminate\Http\RedirectResponse; use Inertia\Response as InertiaResponse; class MessageController extends Controller @@ -24,4 +25,21 @@ class MessageController extends Controller 'message' => new MessageResource($message), ]); } + + public function delete(Message $message) : InertiaResponse + { + return inertia('Messages/ConfirmDelete', [ + 'message' => new MessageResource($message), + ]); + } + + public function destroy(Message $message) : RedirectResponse + { + $sender = $message->sender; + $message->delete(); + + return redirect() + ->route('admin.message.index') + ->with(['success' => 'Wiadomość od '. $sender .' została usunięta']); + } } diff --git a/app/Models/Message.php b/app/Models/Message.php index e3f5320..45f2aa3 100644 --- a/app/Models/Message.php +++ b/app/Models/Message.php @@ -6,6 +6,7 @@ namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\SoftDeletes; /** * @param int $id @@ -15,7 +16,8 @@ use Illuminate\Database\Eloquent\Model; */ class Message extends Model { - use HasFactory; + use HasFactory, + SoftDeletes; protected $guarded = []; } diff --git a/database/migrations/2023_08_03_110803_create_messages_table.php b/database/migrations/2023_08_03_110803_create_messages_table.php index 077ff67..3504f61 100644 --- a/database/migrations/2023_08_03_110803_create_messages_table.php +++ b/database/migrations/2023_08_03_110803_create_messages_table.php @@ -15,6 +15,7 @@ return new class extends Migration $table->string('message', 500); $table->string('email', 250); $table->string('sender', 50); + $table->softDeletes(); $table->timestamps(); }); } diff --git a/resources/js/Pages/Messages/ConfirmDelete.vue b/resources/js/Pages/Messages/ConfirmDelete.vue new file mode 100644 index 0000000..152cd66 --- /dev/null +++ b/resources/js/Pages/Messages/ConfirmDelete.vue @@ -0,0 +1,37 @@ + + + diff --git a/routes/web.php b/routes/web.php index b3653ff..1e0638e 100644 --- a/routes/web.php +++ b/routes/web.php @@ -12,6 +12,10 @@ Route::name('admin.')->group(function () { ->name('index'); Route::get('{message}', 'MessageController@show') ->name('show'); + Route::get('{message}/delete', 'MessageController@delete') + ->name('delete'); + Route::delete('{message}/delete', 'MessageController@destroy') + ->name('destroy'); }); Route::name('cv.')->prefix('cv')->group(function (): void { Route::get('', 'CVController@index')