Sha256: 4ea28168d74f80f449b7aacea8cfec198ab23bac9d98176042ab0f40ef118831

Contents?: true

Size: 1.46 KB

Versions: 8

Compression:

Stored size: 1.46 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 template_params
          params.require(:template).permit(:id, :name, :body, :description, :thumbnail_url, 
                                           :slug, :is_layout, :is_publishable,
                                           audit_flags: [])
        end

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

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
landable-1.11.1 app/controllers/landable/api/templates_controller.rb
landable-1.11.0 app/controllers/landable/api/templates_controller.rb
landable-1.10.0.rc2 app/controllers/landable/api/templates_controller.rb
landable-1.10.0.rc1 app/controllers/landable/api/templates_controller.rb
landable-1.9.2 app/controllers/landable/api/templates_controller.rb
landable-1.9.1 app/controllers/landable/api/templates_controller.rb
landable-1.9.0 app/controllers/landable/api/templates_controller.rb
landable-1.9.0.rc2 app/controllers/landable/api/templates_controller.rb