Sha256: e2ba821a8958b264603b7683587ae7c1029e842b31e5bd2ad8c83929237746b0

Contents?: true

Size: 1.42 KB

Versions: 5

Compression:

Stored size: 1.42 KB

Contents

module Blogo::Admin
  class PostsController < BaseController

    def index
      @posts = Blogo::Post.all
    end

    def new
      @post = Blogo::Post.new(published: true)
    end

    def create
      service = Blogo::CreatePostService.new(blogo_current_user, post_params)

      if service.create!
        @post = service.post
        flash[:notice] = "The post is created"
        redirect_to blogo_admin_posts_path
      else
        @post = service.post
        render 'new'
      end
    end

    def edit
      @post = Blogo::Post.find(params[:id])
    end

    def update
      @post = Blogo::Post.find(params[:id])
      service = Blogo::UpdatePostService.new(@post, post_params)

      if service.update!
        flash[:notice] = "The post is updated"
        redirect_to blogo_admin_posts_path
      else
        render 'edit'
      end
    end

    def destroy
      post = Blogo::Post.find(params[:id])
      Blogo::DestroyPostService.new(post).destroy!

      flash[:notice] = "The post is removed"
      redirect_to blogo_admin_posts_path
    end

    def preview
      @post = Blogo::PreviewPostService.new(blogo_current_user, post_params).preview

      @meta = {title: @post.title }
      @tags = Blogo::Tag.all
      render 'blogo/posts/show', layout: 'blogo/blog'
    end


    private

    def post_params
      params.require(:post).permit(:title, :permalink, :published_at, :raw_content, :published, :tags_string)
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
blogo-0.0.6 app/controllers/blogo/admin/posts_controller.rb
blogo-0.0.5 app/controllers/blogo/admin/posts_controller.rb
blogo-0.0.4 app/controllers/blogo/admin/posts_controller.rb
blogo-0.0.3 app/controllers/blogo/admin/posts_controller.rb
blogo-0.0.2 app/controllers/blogo/admin/posts_controller.rb