Refactor blog deployment.

master
Blog Manager Robot 3 years ago
parent b8cf933a5b
commit e20aabcb64
  1. 8
      Web/lib/MJB/Web.pm
  2. 56
      Web/lib/MJB/Web/Controller/Dashboard.pm

@ -31,6 +31,14 @@ sub startup ($self) {
);
});
$self->helper( deploy_blog => sub ( $c, $blog ) {
my $build_job_id = $c->minion->enqueue( 'deploy_blog', [ $blog->id ], {
notes => { '_bid_' . $blog->id => 1 },
priority => $blog->build_priority,
});
$blog->create_related( 'builds', { job_id => $build_job_id } );
});
# Minion plugin & tasks
$self->plugin( Minion => { Pg => $self->config->{database}->{minion} } );

@ -1,6 +1,7 @@
package MJB::Web::Controller::Dashboard;
use Mojo::Base 'Mojolicious::Controller', -signatures;
sub index ($c) {
push @{$c->stash->{blogs}},
$c->stash->{person}->search_related('blogs')->all;
@ -30,11 +31,7 @@ sub do_blog_post_remove ( $c ) {
$jekyll->remove_markdown_file( $post );
my $build_job_id = $c->minion->enqueue( 'deploy_blog', [ $blog->id ], {
notes => { '_bid_' . $blog->id => 1 },
priority => $blog->build_priority,
});
$blog->create_related( 'builds', { job_id => $build_job_id } );
$c->deploy_blog( $blog );
$c->flash( confirmation => "That post has been removed." );
$c->redirect_to( $c->url_for( 'show_dashboard_blog_posts', { id => $blog->id } ) );
@ -58,11 +55,7 @@ sub do_blog_post_edit ( $c ) {
$jekyll->write_post( $post );
my $build_job_id = $c->minion->enqueue( 'deploy_blog', [ $blog->id ], {
notes => { '_bid_' . $blog->id => 1 },
priority => $blog->build_priority,
});
$blog->create_related( 'builds', { job_id => $build_job_id } );
$c->deploy_blog( $blog );
$c->flash( confirmation => "Updated <strong>$title</strong>!" );
$c->redirect_to( $c->url_for( 'show_dashboard_blog_posts', { id => $blog->id } ) );
@ -107,11 +100,7 @@ sub do_blog_post ( $c ) {
$jekyll->write_post( $post );
my $build_job_id = $c->minion->enqueue( 'deploy_blog', [ $blog->id ], {
notes => { '_bid_' . $blog->id => 1 },
priority => $blog->build_priority,
});
$blog->create_related( 'builds', { job_id => $build_job_id } );
$c->deploy_blog( $blog );
$c->flash( confirmation => "Created <strong>$title</strong>!" );
$c->redirect_to( $c->url_for( 'show_dashboard_blog_posts', { id => $blog->id } ) );
@ -141,6 +130,8 @@ sub do_blog_settings ($c) {
$jekyll->config->data->{email} = $email;
$jekyll->write_config;
$c->deploy_blog( $blog );
$c->flash( confirmation => "The settings have been updated!!" );
$c->redirect_to( $c->url_for( 'show_dashboard_blog_settings', { id => $blog->id } ) );
@ -167,6 +158,8 @@ sub do_blog_config ( $c ) {
$jekyll->write_config;
$c->deploy_blog( $blog );
$c->flash( confirmation => "The config has been updated!!" );
$c->redirect_to( $c->url_for( 'show_dashboard_blog_config', { id => $blog->id } ) );
}
@ -192,11 +185,7 @@ sub do_blog_media_remove( $c ) {
$jekyll->remove_file( $media_file->to_string, "Removed media file" . $media_file->basename );
}
my $build_job_id = $c->minion->enqueue( 'deploy_blog', [ $blog->id ], {
notes => { '_bid_' . $blog->id => 1 },
priority => $blog->build_priority,
});
$blog->create_related( 'builds', { job_id => $build_job_id } );
$c->deploy_blog( $blog );
$c->flash( confirmation => "Removed " . $media_file->basename );
$c->redirect_to( $c->url_for( 'show_dashboard_blog_media', { id => $blog->id } ) );
@ -221,11 +210,7 @@ sub do_blog_media ( $c ) {
"Add media " . $upload->filename
);
my $build_job_id = $c->minion->enqueue( 'deploy_blog', [ $blog->id ], {
notes => { '_bid_' . $blog->id => 1 },
priority => $blog->build_priority,
});
$blog->create_related( 'builds', { job_id => $build_job_id } );
$c->deploy_blog( $blog );
$c->flash( confirmation => "Uploaded file!" );
$c->redirect_to( $c->url_for( 'show_dashboard_blog_media', { id => $blog->id } ) );
@ -251,6 +236,8 @@ sub do_blog_history ( $c ) {
if ( $old_commit ) {
$jekyll->revert_commit( $commit );
$c->deploy_blog( $blog );
$c->flash( confirmation => "Undid $commit!" );
$c->redirect_to( $c->url_for( 'show_dashboard_blog_history', { id => $blog->id } ) );
}
@ -287,11 +274,7 @@ sub do_blog_page_remove ( $c ) {
$jekyll->remove_markdown_file( $page );
my $build_job_id = $c->minion->enqueue( 'deploy_blog', [ $blog->id ], {
notes => { '_bid_' . $blog->id => 1 },
priority => $blog->build_priority,
});
$blog->create_related( 'builds', { job_id => $build_job_id } );
$c->deploy_blog( $blog );
$c->flash( confirmation => "That page has been removed." );
$c->redirect_to( $c->url_for( 'show_dashboard_blog_pages', { id => $blog->id } ) );
@ -316,11 +299,7 @@ sub do_blog_page_edit ( $c ) {
$jekyll->write_post( $blog_page );
my $build_job_id = $c->minion->enqueue( 'deploy_blog', [ $blog->id ], {
notes => { '_bid_' . $blog->id => 1 },
priority => $blog->build_priority,
});
$blog->create_related( 'builds', { job_id => $build_job_id } );
$c->deploy_blog( $blog );
$c->flash( confirmation => "Updated Page " . $blog_page->filename . "!" );
$c->redirect_to( $c->url_for( 'show_dashboard_blog_pages', { id => $blog->id } ) );
@ -346,15 +325,10 @@ sub do_blog_page ( $c ) {
$jekyll->write_post( $page );
my $build_job_id = $c->minion->enqueue( 'deploy_blog', [ $blog->id ], {
notes => { '_bid_' . $blog->id => 1 },
priority => $blog->build_priority,
});
$blog->create_related( 'builds', { job_id => $build_job_id } );
$c->deploy_blog( $blog );
$c->flash( confirmation => "Created Page " . $page->filename . "!" );
$c->redirect_to( $c->url_for( 'show_dashboard_blog_pages', { id => $blog->id } ) );
}
1;

Loading…
Cancel
Save