36 lines
828 B
Ruby
36 lines
828 B
Ruby
class Api::NotesController < Api::ApiController
|
|
before_action :set_release
|
|
deserializable_resource :note, only: [:create]
|
|
|
|
def index
|
|
render jsonapi: @release.notes, class: { Note: SerializableNote }
|
|
end
|
|
|
|
def create
|
|
note = @release.notes.new(note_create_params)
|
|
note.user_id = current_user.id
|
|
note.email = current_user.email
|
|
note.save!
|
|
render jsonapi: note, class: { Note: SerializableNote }, status: :created
|
|
end
|
|
|
|
private
|
|
|
|
def model_name
|
|
request.path.match(/(\w+_releases)/).captures.first.singularize
|
|
end
|
|
|
|
def model_constant
|
|
model_name.camelize.constantize
|
|
end
|
|
|
|
def set_release
|
|
@release = authorize model_constant.find(params["#{model_name}_id"])
|
|
end
|
|
|
|
def note_create_params
|
|
parameters = params.require(:note).permit!
|
|
parameters.slice(:content)
|
|
end
|
|
end
|