From 4308dec85e78cfd6053df863ea465c223d70a416 Mon Sep 17 00:00:00 2001 From: Bruno Torrinha Date: Mon, 22 Jan 2018 10:18:31 +0000 Subject: [PATCH 1/2] Revised stubs, Seeds and Unseeds --- stub/composer.json | 4 +- .../database/{seeders => seeds}/.gitkeep | 0 .../database/seeds/DatabaseSeeder.php | 23 ++++++++++ .../database/seeds/MenuItemsTableSeeder.php | 44 +++++++++++++++++++ .../database/seeds/PermissionsTableSeeder.php | 31 +++++++++++++ .../StudlyCaseTableSeeder.php | 0 .../database/{unseeders => unseeds}/.gitkeep | 0 .../database/unseeds/DatabaseUnseeder.php | 18 ++++++++ .../unseeds/MenuItemsTableUnseeder.php | 24 ++++++++++ .../unseeds/PermissionsTableUnseeder.php | 17 +++++++ .../StudlyCaseTableUnseeder.php | 0 11 files changed, 159 insertions(+), 2 deletions(-) rename stub/resources/database/{seeders => seeds}/.gitkeep (100%) create mode 100644 stub/resources/database/seeds/DatabaseSeeder.php create mode 100644 stub/resources/database/seeds/MenuItemsTableSeeder.php create mode 100644 stub/resources/database/seeds/PermissionsTableSeeder.php rename stub/resources/database/{seeders => seeds}/StudlyCaseTableSeeder.php (100%) rename stub/resources/database/{unseeders => unseeds}/.gitkeep (100%) create mode 100644 stub/resources/database/unseeds/DatabaseUnseeder.php create mode 100644 stub/resources/database/unseeds/MenuItemsTableUnseeder.php create mode 100644 stub/resources/database/unseeds/PermissionsTableUnseeder.php rename stub/resources/database/{unseeders => unseeds}/StudlyCaseTableUnseeder.php (100%) diff --git a/stub/composer.json b/stub/composer.json index cbc4930..c455f0d 100644 --- a/stub/composer.json +++ b/stub/composer.json @@ -21,10 +21,10 @@ "resources/database/migrations" ], "seeders": [ - "resources/database/seeders" + "resources/database/seeds/DatabaseSeeder" ], "unseeders": [ - "resources/database/unseeders" + "resources/database/unseeds/DatabaseUnseeder" ], "assets": { "resources/assets": "public/vendor/kebab-case" diff --git a/stub/resources/database/seeders/.gitkeep b/stub/resources/database/seeds/.gitkeep similarity index 100% rename from stub/resources/database/seeders/.gitkeep rename to stub/resources/database/seeds/.gitkeep diff --git a/stub/resources/database/seeds/DatabaseSeeder.php b/stub/resources/database/seeds/DatabaseSeeder.php new file mode 100644 index 0000000..22c9746 --- /dev/null +++ b/stub/resources/database/seeds/DatabaseSeeder.php @@ -0,0 +1,23 @@ +seed('StudlyCaseTableSeeder'); + $this->seed('MenuItemsTableSeeder'); + $this->seed('PermissionsTableSeeder'); + } +} diff --git a/stub/resources/database/seeds/MenuItemsTableSeeder.php b/stub/resources/database/seeds/MenuItemsTableSeeder.php new file mode 100644 index 0000000..2c947b8 --- /dev/null +++ b/stub/resources/database/seeds/MenuItemsTableSeeder.php @@ -0,0 +1,44 @@ +firstOrFail(); + + $url = '/admin/snake_case'; + + // Skip if already exists + if (MenuItem::where('menu_id', $menu->id)->where('url', $url)->first()) { + return; + } + + // Return next order index + $lastItem = MenuItem::select('order') + ::where('menu_id', $menu->id) + ->where('url', $url) + ->orderBy('order', 'desc') + ->first(); + + // Add menu item + MenuItem::create([ + 'menu_id' => $menu->id, + 'url' => $url, + 'title' => 'snake_case', + 'target' => '_self', + 'icon_class' => 'voyager-megaphone', + 'color' => null, + 'parent_id' => null, + 'order' => $lastItem->order, + ]); + } +} diff --git a/stub/resources/database/seeds/PermissionsTableSeeder.php b/stub/resources/database/seeds/PermissionsTableSeeder.php new file mode 100644 index 0000000..379cfa1 --- /dev/null +++ b/stub/resources/database/seeds/PermissionsTableSeeder.php @@ -0,0 +1,31 @@ +first()) { + return; + } + + Permission::generateFor('snake_case'); + + $role = Role::where('name', 'admin')->first(); + + if (!is_null($role)) { + $role->permissions()->attach( + Permission::where('table_name', 'snake_case')->pluck('id')->all() + ); + } + } +} diff --git a/stub/resources/database/seeders/StudlyCaseTableSeeder.php b/stub/resources/database/seeds/StudlyCaseTableSeeder.php similarity index 100% rename from stub/resources/database/seeders/StudlyCaseTableSeeder.php rename to stub/resources/database/seeds/StudlyCaseTableSeeder.php diff --git a/stub/resources/database/unseeders/.gitkeep b/stub/resources/database/unseeds/.gitkeep similarity index 100% rename from stub/resources/database/unseeders/.gitkeep rename to stub/resources/database/unseeds/.gitkeep diff --git a/stub/resources/database/unseeds/DatabaseUnseeder.php b/stub/resources/database/unseeds/DatabaseUnseeder.php new file mode 100644 index 0000000..e0dc057 --- /dev/null +++ b/stub/resources/database/unseeds/DatabaseUnseeder.php @@ -0,0 +1,18 @@ +seed('StudlyCaseTableSeeder'); + $this->seed('MenuItemsTableUnseeder'); + $this->seed('PermissionsTableUnseeder'); + } +} diff --git a/stub/resources/database/unseeds/MenuItemsTableUnseeder.php b/stub/resources/database/unseeds/MenuItemsTableUnseeder.php new file mode 100644 index 0000000..c48df0b --- /dev/null +++ b/stub/resources/database/unseeds/MenuItemsTableUnseeder.php @@ -0,0 +1,24 @@ +firstOrFail(); + + MenuItem::where('menu_id', $menu->id) + ->where('url', $url) + ->delete(); + } +} diff --git a/stub/resources/database/unseeds/PermissionsTableUnseeder.php b/stub/resources/database/unseeds/PermissionsTableUnseeder.php new file mode 100644 index 0000000..9b12695 --- /dev/null +++ b/stub/resources/database/unseeds/PermissionsTableUnseeder.php @@ -0,0 +1,17 @@ + Date: Mon, 22 Jan 2018 11:43:57 +0000 Subject: [PATCH 2/2] Add .php --- stub/composer.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stub/composer.json b/stub/composer.json index c455f0d..9132899 100644 --- a/stub/composer.json +++ b/stub/composer.json @@ -21,10 +21,10 @@ "resources/database/migrations" ], "seeders": [ - "resources/database/seeds/DatabaseSeeder" + "resources/database/seeds/DatabaseSeeder.php" ], "unseeders": [ - "resources/database/unseeds/DatabaseUnseeder" + "resources/database/unseeds/DatabaseUnseeder.php" ], "assets": { "resources/assets": "public/vendor/kebab-case"