8 changed files with 68 additions and 10 deletions
@ -0,0 +1,56 @@ |
|||||||
|
module Api |
||||||
|
module Doctrine |
||||||
|
class AnnotationsController < ::Api::BaseController |
||||||
|
load_and_authorize_resource :doctrine, class: "Doctrine" |
||||||
|
load_and_authorize_resource :annotation, class: "Annotation", through: :doctrine |
||||||
|
|
||||||
|
def index |
||||||
|
respond_with @annotations |
||||||
|
end |
||||||
|
|
||||||
|
def show |
||||||
|
respond_with @annotation |
||||||
|
end |
||||||
|
|
||||||
|
def create |
||||||
|
attrs = resource_params.to_unsafe_h.deep_symbolize_keys |
||||||
|
subject_ids = attrs.delete(:subject_ids) |
||||||
|
|
||||||
|
@annotation = @jurisprudence.annotations.new(attrs) |
||||||
|
|
||||||
|
if @annotation.save |
||||||
|
@annotation.subject_ids = subject_ids if subject_ids.present? |
||||||
|
|
||||||
|
respond_with @annotation |
||||||
|
else |
||||||
|
render errors: @annotation.errors, status: 422 |
||||||
|
end |
||||||
|
end |
||||||
|
|
||||||
|
def update |
||||||
|
attrs = resource_params.to_unsafe_h.deep_symbolize_keys |
||||||
|
subject_ids = attrs.delete(:subject_ids) |
||||||
|
|
||||||
|
if @annotation.update(attrs) |
||||||
|
@annotation.subject_ids = subject_ids if subject_ids.present? |
||||||
|
|
||||||
|
respond_with @annotation |
||||||
|
else |
||||||
|
render errors: @annotation.errors, status: 422 |
||||||
|
end |
||||||
|
end |
||||||
|
|
||||||
|
def destroy |
||||||
|
@annotation.destroy |
||||||
|
|
||||||
|
respond_with @annotation |
||||||
|
end |
||||||
|
|
||||||
|
private |
||||||
|
|
||||||
|
def resource_params |
||||||
|
params.permit(:content, subject_ids: []) |
||||||
|
end |
||||||
|
end |
||||||
|
end |
||||||
|
end |
||||||
Loading…
Reference in new issue