Sha256: fa6da48077cd33cf5b964831fe816266fcc31f556db8e0c01260e265532df18b

Contents?: true

Size: 1.98 KB

Versions: 7

Compression:

Stored size: 1.98 KB

Contents

class API::V1::<%= resource.pluralize %>Controller < Faalis::APIController
  before_filter :build_resource, :only => :create
  load_and_authorize_resource :except => [:destory]

  # GET /api/v1/<%= resource.pluralize.underscore %>
  def index
    respond_with(@<%= resource.pluralize.underscore %>)
  end

  def create
    <% fields.each do |name, type| %><% if type == "has_many" %>
    <%= name.underscore %> = <%= name.singularize.camelize %>.where({:id => params[:<%= resource.underscore %>][:<%= name %>]})
    @<%= resource.underscore %>.<%= name.underscore %> = <%= name.underscore %><% end %><% end %>
    if @<%= resource.underscore %>.save
      respond_with(@<%= resource.underscore %>)
    else
      respond_to do |format|
        format.json { render :json => {:fields => @<%= resource.underscore %>.errors}, :status => :unprocessable_entity }
      end
    end
  end

  def show
    respond_with(@<%= resource.underscore %>)
  end

  def update
    <% fields.each do |name, type| %><% if type == "has_many" %>
    <%= name.underscore %> = <%= name.singularize.camelize %>.where({:id => params[:<%= resource.underscore %>][:<%= name %>]})
    @<%= resource.underscore %>.<%= name.underscore %> = <%= name.underscore %><% end %><% end %>

    if @<%= resource.underscore %>.update(resource_params)
      respond_with(@<%= resource.underscore %>)
    else
      respond_to do |format|
        format.json { render :json => {:fields => @<%= resource.underscore %>.errors}, :status => :unprocessable_entity }
      end
    end
  end

  def destroy
    ids = params[:id].split(",")
    @<%= resource.pluralize.underscore %> = ::<%= resource %>.where(:id => ids)
    authorize! :destroy, @<%= resource.pluralize.underscore %>
    @<%= resource.pluralize.underscore %>.destroy_all
  end

  def build_resource
    @<%= resource.underscore %> = ::<%= resource %>.new(resource_params)
  end

  def resource_params
    params.require(:<%= resource.underscore %>).permit(:id<%= fields_as_params(:relations => true) %>)
  end

end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
faalis-0.14.4 lib/generators/faalis/templates/api/controller.rb.erb
faalis-0.14.3 lib/generators/faalis/templates/api/controller.rb.erb
faalis-0.14.2 lib/generators/faalis/templates/api/controller.rb.erb
faalis-0.14.0 lib/generators/faalis/templates/api/controller.rb.erb
faalis-0.11.1 lib/generators/faalis/templates/api/controller.rb.erb
faalis-0.11.0 lib/generators/faalis/templates/api/controller.rb.erb
faalis-0.7.0 lib/generators/faalis/templates/api/controller.rb.erb