Sha256: 9a49faf21d4a6832f051419253eb17c3b3cee5c5752b21596d653cfab2283961

Contents?: true

Size: 1.04 KB

Versions: 4

Compression:

Stored size: 1.04 KB

Contents

<% module_namespacing do -%>
class <%= model_klass.name.pluralize %>Controller < ApplicationController
  jsonapi resource: <%= model_klass %>Resource

  strong_resource :<%= file_name %>

  before_action :apply_strong_params, only: [:create, :update]

  def index
    <%= file_name.pluralize %> = <%= model_klass %>.all
    render_jsonapi(<%= file_name.pluralize %>)
  end

  def show
    scope = jsonapi_scope(<%= model_klass %>.where(id: params[:id]))
    render_jsonapi(scope.resolve.first, scope: false)
  end

  def create
    <%= file_name %>, success = jsonapi_create.to_a

    if success
      render_jsonapi(<%= file_name %>, scope: false)
    else
      render_errors_for(<%= file_name %>)
    end
  end

  def update
    <%= file_name %>, success = jsonapi_update.to_a

    if success
      render_jsonapi(<%= file_name %>, scope: false)
    else
      render_errors_for(<%= file_name %>)
    end
  end

  def destroy
    <%= file_name %> = <%= model_klass %>.find(params[:id])
    <%= file_name %>.destroy
    return head(:no_content)
  end
end
<% end -%>

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
jsonapi_compliable-0.6.13 lib/generators/jsonapi/templates/controller.rb.erb
jsonapi_compliable-0.6.12 lib/generators/jsonapi/templates/controller.rb.erb
jsonapi_compliable-0.6.11 lib/generators/jsonapi/templates/controller.rb.erb
jsonapi_compliable-0.6.10 lib/generators/jsonapi/templates/controller.rb.erb