lib/napa/cli/templates/api/app/apis/%name_tableize%_api.rb.tt
class <%= name.classify.pluralize %>Api < Grape::API
desc 'Get a list of <%= name.underscore.tableize %>'
params do
optional :ids, type: Array, desc: 'Array of <%= name.underscore %> ids'
end
get do
<%= name.underscore.tableize %> = params[:ids] ? <%= name.classify %>.where(id: params[:ids]) : <%= name.classify %>.all
represent <%= name.underscore.tableize %>, with: <%= name.classify %>Representer
end
desc 'Create <%= name.underscore.with_indefinite_article %>'
params do
end
post do
<%= name.underscore %> = <%= name.classify %>.create!(permitted_params)
represent <%= name.underscore %>, with: <%= name.classify %>Representer
end
params do
requires :id, desc: 'ID of the <%= name.underscore %>'
end
route_param :id do
desc 'Get <%= name.underscore.with_indefinite_article %>'
get do
<%= name.underscore %> = <%= name.classify %>.find(params[:id])
represent <%= name.underscore %>, with: <%= name.classify %>Representer
end
desc 'Update <%= name.underscore.with_indefinite_article %>'
params do
end
put do
# fetch <%= name.underscore %> record and update attributes. exceptions caught in app.rb
<%= name.underscore %> = <%= name.classify %>.find(params[:id])
<%= name.underscore %>.update_attributes!(permitted_params)
represent <%= name.underscore %>, with: <%= name.classify %>Representer
end
end
end