Sha256: ad3ab694be9a66ede593b24ce1ed7717a4d3711d4a7a6194217b16d5ad98be31

Contents?: true

Size: 1.38 KB

Versions: 2

Compression:

Stored size: 1.38 KB

Contents

require_dependency "landable/api_controller"

module Landable
  module Api
    class TemplatesController < ApiController
      # filters
      before_filter :load_template, except: [:create, :index]

      # RESTful methods
      def create
        template = Template.new(template_params)
        template.save!
        
        respond_with template, status: :created, location: template_url(template)
      end

      def destroy
        @template.temp_author = current_author
        @template.try(:deactivate)

        respond_with @template
      end

      def index
        respond_with Template.all
      end

      def show
        respond_with @template
      end

      def update
        @template.update_attributes!(template_params)
        
        respond_with @template
      end

      # custom methods
      def publish
        @template.publish! author_id: current_author.id, notes: params[:notes], is_minor: !!params[:is_minor]
        
        respond_with @template
      end

      def reactivate
        @template.try(:reactivate)
        
        respond_with @template
      end

      private
        def load_template
          @template = Template.find(params[:id])
        end

        def template_params
          params.require(:template).permit(:id, :name, :body, :description, :thumbnail_url, :slug, :is_layout, :is_publishable)
        end

      # end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
landable-1.9.0.rc1 app/controllers/landable/api/templates_controller.rb
landable-1.8.0 app/controllers/landable/api/templates_controller.rb