diff --git a/app/Console/Commands/DemoMetricPointSeederCommand.php b/app/Console/Commands/DemoMetricPointSeederCommand.php new file mode 100644 index 00000000..d20ea27e --- /dev/null +++ b/app/Console/Commands/DemoMetricPointSeederCommand.php @@ -0,0 +1,93 @@ + + */ +class DemoMetricPointSeederCommand extends Command +{ + use ConfirmableTrait; + + /** + * The console command name. + * + * @var string + */ + protected $name = 'cachet:metrics'; + + /** + * The console command description. + * + * @var string + */ + protected $description = 'Seeds the demo Cachet metric with points.'; + + /** + * Execute the console command. + * + * @return void + */ + public function fire() + { + if (!$this->confirmToProceed()) { + return; + } + + $this->seedMetricPoints(); + + $this->info('Demo metric seeded with demo data successfully!'); + } + + /** + * 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')); + + MetricPoint::create([ + 'metric_id' => 1, + 'value' => rand(1, 10), + 'created_at' => $metricTime, + 'updated_at' => $metricTime, + ]); + } + } + + /** + * Get the console command options. + * + * @return array + */ + protected function getOptions() + { + return [ + ['force', null, InputOption::VALUE_NONE, 'Force the operation to run when in production.'], + ]; + } +} diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index e5d36f9f..d1c9686b 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -11,6 +11,7 @@ namespace CachetHQ\Cachet\Console; +use CachetHQ\Cachet\Console\Commands\DemoMetricPointSeederCommand; use CachetHQ\Cachet\Console\Commands\DemoSeederCommand; use Illuminate\Console\Scheduling\Schedule; use Illuminate\Foundation\Console\Kernel as ConsoleKernel; @@ -23,6 +24,7 @@ class Kernel extends ConsoleKernel * @var array */ protected $commands = [ + DemoMetricPointSeederCommand::class, DemoSeederCommand::class, ];