diff --git a/lib/Explain.pm b/lib/Explain.pm index f9e2a15..7fcb0c9 100755 --- a/lib/Explain.pm +++ b/lib/Explain.pm @@ -41,6 +41,9 @@ sub startup { # route: 'index' $routes->route( '/' )->to( 'controller#index' )->name( 'new-explain' ); + # route: 'status' + $routes->route( '/status' )->to( 'controller#status' )->name( 'status' ); + # route: 'new-optimization' $routes->route( '/new_optimization' )->to( 'controller#new_optimization' )->name( 'new-optimization' ); diff --git a/lib/Explain/Controller.pm b/lib/Explain/Controller.pm index 007e9e3..16d9c99 100755 --- a/lib/Explain/Controller.pm +++ b/lib/Explain/Controller.pm @@ -412,6 +412,15 @@ sub info { } +sub status { + my $self = shift; + if ($self->database->ping()) { + $self->render('text' => 'OK', status => 200); + } else { + $self->render('text' => 'DB FAILED', status => 500); + } +} + sub help { # direct to template diff --git a/lib/Explain/Plugin/Database.pm b/lib/Explain/Plugin/Database.pm index 82f0740..43119f3 100755 --- a/lib/Explain/Plugin/Database.pm +++ b/lib/Explain/Plugin/Database.pm @@ -223,6 +223,11 @@ sub save_with_random_name { return @row; } +sub ping { + my $self = shift; + return $self->dbh->ping(); +} + sub get_plan_data { my $self = shift; my ( $plan_id ) = @_;