From a05496f7d038fb0b11ccbe2ca23f2fe7e90d1e40 Mon Sep 17 00:00:00 2001 From: James Brooks Date: Fri, 7 Aug 2015 08:31:22 +0100 Subject: [PATCH] Created DemoSeederCommand to replace seeders. Closes #884 --- app/Console/Commands/DemoSeederCommand.php | 276 +++++++++++++++++++++ app/Console/Kernel.php | 1 + database/seeds/.gitkeep | 0 database/seeds/ComponentTableSeeder.php | 60 ----- database/seeds/DatabaseSeeder.php | 27 -- database/seeds/IncidentTableSeeder.php | 63 ----- database/seeds/MetricPointSeeder.php | 39 --- database/seeds/MetricTableSeeder.php | 39 --- database/seeds/SettingsTableSeeder.php | 67 ----- database/seeds/UsersTableSeeder.php | 38 --- 10 files changed, 277 insertions(+), 333 deletions(-) create mode 100644 app/Console/Commands/DemoSeederCommand.php create mode 100644 database/seeds/.gitkeep delete mode 100644 database/seeds/ComponentTableSeeder.php delete mode 100644 database/seeds/DatabaseSeeder.php delete mode 100644 database/seeds/IncidentTableSeeder.php delete mode 100644 database/seeds/MetricPointSeeder.php delete mode 100644 database/seeds/MetricTableSeeder.php delete mode 100644 database/seeds/SettingsTableSeeder.php delete mode 100644 database/seeds/UsersTableSeeder.php diff --git a/app/Console/Commands/DemoSeederCommand.php b/app/Console/Commands/DemoSeederCommand.php new file mode 100644 index 00000000..7611de22 --- /dev/null +++ b/app/Console/Commands/DemoSeederCommand.php @@ -0,0 +1,276 @@ + + */ +class DemoSeederCommand extends Command +{ + /** + * The console command name. + * + * @var string + */ + protected $name = 'cachet:seed'; + + /** + * The console command description. + * + * @var string + */ + protected $description = 'Seeds Cachet with demo data.'; + + /** + * Execute the console command. + */ + public function fire() + { + $this->seedComponents(); + $this->seedIncidents(); + $this->seedMetricPoints(); + $this->seedMetrics(); + $this->seedSettings(); + $this->seedUsers(); + } + + /** + * Seed the components table. + * + * @return void + */ + protected function seedComponents() + { + $defaultComponents = [ + [ + 'name' => 'API', + 'description' => 'Used by third-parties to connect to us', + 'status' => 1, + 'order' => 0, + 'group_id' => 0, + 'link' => '', + ], [ + 'name' => 'Documentation', + 'description' => 'Kindly powered by Readme.io', + 'status' => 1, + 'order' => 0, + 'group_id' => 0, + 'link' => 'https://docs.cachethq.io', + ], [ + 'name' => 'Website', + 'description' => '', + 'status' => 1, + 'order' => 0, + 'group_id' => 0, + 'link' => 'https://cachethq.io', + ], [ + 'name' => 'Blog', + 'description' => 'The Cachet Blog.', + 'status' => 1, + 'order' => 0, + 'group_id' => 0, + 'link' => 'https://blog.cachethq.io', + ], + ]; + + Component::truncate(); + + foreach ($defaultComponents as $component) { + Component::create($component); + } + } + + /** + * Seed the incidents table. + * + * @return void + */ + protected function seedIncidents() + { + $defaultIncidents = [ + [ + 'name' => 'Awesome', + 'message' => 'We totally nailed the fix :smile:', + 'status' => 4, + 'component_id' => 0, + 'scheduled_at' => null, + 'visible' => 1, + ], + [ + 'name' => 'Monitoring the fix', + 'message' => "We're checking that our fix will first work.", + 'status' => 3, + 'component_id' => 0, + 'scheduled_at' => null, + 'visible' => 1, + ], + [ + 'name' => 'Update', + 'message' => "We've found the problem, so we're looking at it.", + 'status' => 2, + 'component_id' => 0, + 'scheduled_at' => null, + 'visible' => 1, + ], + [ + 'name' => 'Test Incident', + 'message' => 'Something went wrong, oh noes.', + 'status' => 1, + 'component_id' => 0, + 'scheduled_at' => null, + 'visible' => 1, + ], + ]; + + Incident::truncate(); + + foreach ($defaultIncidents as $incident) { + Incident::create($incident); + } + } + + /** + * Seed the metric points table. + * + * @return void + */ + protected function seedMetricPoints() + { + MetricPoint::truncate(); + + // Generate 11 hours of metric points + for ($i = 0; $i < 11; $i++) { + $metricTime = (new DateTime())->sub(new DateInterval('PT'.$i.'H')); + + $point = MetricPoint::create([ + 'metric_id' => 1, + 'value' => rand(1, 10), + 'created_at' => $metricTime, + 'updated_at' => $metricTime, + ]); + } + } + + /** + * Seed the metrics table. + * + * @return void + */ + protected function seedMetrics() + { + $defaultMetrics = [ + [ + 'name' => 'Cups of coffee', + 'suffix' => 'Cups', + 'description' => 'How many cups of coffee we\'ve drank.', + 'default_value' => 0, + 'calc_type' => 1, + 'display_chart' => 1, + ], + ]; + + Metric::truncate(); + + foreach ($defaultMetrics as $metric) { + Metric::create($metric); + } + } + + /** + * Seed the settings table. + * + * @return void + */ + protected function seedSettings() + { + $defaultSettings = [ + [ + 'name' => 'app_name', + 'value' => 'Cachet Demo', + ], + [ + 'name' => 'app_domain', + 'value' => 'https://demo.cachethq.io', + ], + [ + 'name' => 'show_support', + 'value' => '1', + ], + [ + 'name' => 'app_locale', + 'value' => 'en', + ], + [ + 'name' => 'app_timezone', + 'value' => 'Europe/London', + ], + [ + 'name' => 'app_incident_days', + 'value' => '7', + ], + [ + 'name' => 'app_analytics', + 'value' => 'UA-58442674-3', + ], + [ + 'name' => 'app_analytics_gs', + 'value' => 'GSN-712462-P', + ], + [ + 'name' => 'display_graphs', + 'value' => '1', + ], + ]; + + Setting::truncate(); + + foreach ($defaultSettings as $setting) { + Setting::create($setting); + } + } + + /** + * Seed the users table. + * + * @return void + */ + protected function seedUsers() + { + $users = [ + [ + 'username' => 'test', + 'password' => 'test123', + 'email' => 'test@test.com', + 'level' => 1, + 'api_key' => '9yMHsdioQosnyVK4iCVR', + ], + ]; + + User::truncate(); + + foreach ($users as $user) { + User::create($user); + } + } +} diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 7b580186..87172c31 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -22,6 +22,7 @@ class Kernel extends ConsoleKernel * @var array */ protected $commands = [ + 'CachetHQ\Cachet\Console\Commands\DemoSeederCommand', 'CachetHQ\Cachet\Console\Commands\FixPermissionsCommand', ]; diff --git a/database/seeds/.gitkeep b/database/seeds/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/database/seeds/ComponentTableSeeder.php b/database/seeds/ComponentTableSeeder.php deleted file mode 100644 index 3153efe6..00000000 --- a/database/seeds/ComponentTableSeeder.php +++ /dev/null @@ -1,60 +0,0 @@ - 'API', - 'description' => 'Used by third-parties to connect to us', - 'status' => 1, - 'order' => 0, - 'group_id' => 0, - 'link' => '', - ], [ - 'name' => 'Documentation', - 'description' => 'Kindly powered by Readme.io', - 'status' => 1, - 'order' => 0, - 'group_id' => 0, - 'link' => 'https://docs.cachethq.io', - ], [ - 'name' => 'Website', - 'description' => '', - 'status' => 1, - 'order' => 0, - 'group_id' => 0, - 'link' => 'https://cachethq.io', - ], [ - 'name' => 'Blog', - 'description' => 'The Cachet Blog.', - 'status' => 1, - 'order' => 0, - 'group_id' => 0, - 'link' => 'https://blog.cachethq.io', - ], - ]; - - Component::truncate(); - - foreach ($defaultComponents as $component) { - Component::create($component); - } - } -} diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php deleted file mode 100644 index 65546c2b..00000000 --- a/database/seeds/DatabaseSeeder.php +++ /dev/null @@ -1,27 +0,0 @@ -call('UsersTableSeeder'); - $this->call('SettingsTableSeeder'); - $this->call('IncidentTableSeeder'); - $this->call('ComponentTableSeeder'); - $this->call('MetricTableSeeder'); - } -} diff --git a/database/seeds/IncidentTableSeeder.php b/database/seeds/IncidentTableSeeder.php deleted file mode 100644 index e34096de..00000000 --- a/database/seeds/IncidentTableSeeder.php +++ /dev/null @@ -1,63 +0,0 @@ - 'Awesome', - 'message' => 'We totally nailed the fix :smile:', - 'status' => 4, - 'component_id' => 0, - 'scheduled_at' => null, - 'visible' => 1, - ], - [ - 'name' => 'Monitoring the fix', - 'message' => "We're checking that our fix will first work.", - 'status' => 3, - 'component_id' => 0, - 'scheduled_at' => null, - 'visible' => 1, - ], - [ - 'name' => 'Update', - 'message' => "We've found the problem, so we're looking at it.", - 'status' => 2, - 'component_id' => 0, - 'scheduled_at' => null, - 'visible' => 1, - ], - [ - 'name' => 'Test Incident', - 'message' => 'Something went wrong, oh noes.', - 'status' => 1, - 'component_id' => 0, - 'scheduled_at' => null, - 'visible' => 1, - ], - ]; - - Incident::truncate(); - - foreach ($defaultIncidents as $incident) { - Incident::create($incident); - } - } -} diff --git a/database/seeds/MetricPointSeeder.php b/database/seeds/MetricPointSeeder.php deleted file mode 100644 index 21a0f88f..00000000 --- a/database/seeds/MetricPointSeeder.php +++ /dev/null @@ -1,39 +0,0 @@ -sub(new DateInterval('PT'.$i.'H')); - - $point = MetricPoint::create([ - 'metric_id' => 1, - 'value' => rand(1, 100), - 'created_at' => $metricTime, - ]); - - $point->update([ - 'created_at' => $metricTime, - ]); - } - } -} diff --git a/database/seeds/MetricTableSeeder.php b/database/seeds/MetricTableSeeder.php deleted file mode 100644 index 017a1ac9..00000000 --- a/database/seeds/MetricTableSeeder.php +++ /dev/null @@ -1,39 +0,0 @@ - 'Cups of coffee', - 'suffix' => 'Cups', - 'description' => 'How many cups of coffee we\'ve drank.', - 'default_value' => 0, - 'calc_type' => 1, - 'display_chart' => 1, - ], - ]; - - Metric::truncate(); - - foreach ($defaultMetrics as $metric) { - Metric::create($metric); - } - } -} diff --git a/database/seeds/SettingsTableSeeder.php b/database/seeds/SettingsTableSeeder.php deleted file mode 100644 index 34829b66..00000000 --- a/database/seeds/SettingsTableSeeder.php +++ /dev/null @@ -1,67 +0,0 @@ - 'app_name', - 'value' => 'Cachet Demo', - ], - [ - 'name' => 'app_domain', - 'value' => 'https://demo.cachethq.io', - ], - [ - 'name' => 'show_support', - 'value' => '1', - ], - [ - 'name' => 'app_locale', - 'value' => 'en', - ], - [ - 'name' => 'app_timezone', - 'value' => 'Europe/London', - ], - [ - 'name' => 'app_incident_days', - 'value' => '7', - ], - [ - 'name' => 'app_analytics', - 'value' => 'UA-58442674-3', - ], - [ - 'name' => 'app_analytics_gs', - 'value' => 'GSN-712462-P', - ], - [ - 'name' => 'display_graphs', - 'value' => '1', - ], - ]; - - Setting::truncate(); - - foreach ($defaultSettings as $setting) { - Setting::create($setting); - } - } -} diff --git a/database/seeds/UsersTableSeeder.php b/database/seeds/UsersTableSeeder.php deleted file mode 100644 index f25734da..00000000 --- a/database/seeds/UsersTableSeeder.php +++ /dev/null @@ -1,38 +0,0 @@ - 'test', - 'password' => 'test123', - 'email' => 'test@test.com', - 'level' => 1, - 'api_key' => '9yMHsdioQosnyVK4iCVR', - ], - ]; - - User::truncate(); - - foreach ($users as $user) { - User::create($user); - } - } -}