Sha256: 47d8537f61a75859f3c5bc4cb240090eb400cbfe0644acc1817f3317259a3903
Contents?: true
Size: 1.51 KB
Versions: 3
Compression:
Stored size: 1.51 KB
Contents
# frozen_string_literal: true module Decidim module ParticipatoryDocuments module Admin class AnnotationsController < Admin::ApplicationController layout false rescue_from ActiveRecord::RecordNotFound do |_exception| render json: { error: I18n.t("decidim.errors.not_found.content_doesnt_exist") }, status: :not_found end def destroy enforce_permission_to :create, :document_annotations @form = form(Decidim::ParticipatoryDocuments::Admin::AnnotationForm).from_model(annotation) Admin::DestroyAnnotation.call(@form, document) do on(:ok) do render(json: {}, status: :accepted) && return end on(:invalid) do render(json: {}, status: :unprocessable_entity) && return end end end def create enforce_permission_to :create, :document_annotations @form = form(Decidim::ParticipatoryDocuments::Admin::AnnotationForm).from_params(params) Admin::UpdateOrCreateAnnotation.call(@form, document) do on(:ok) do |annotation| render(json: { data: annotation.serialize }, status: :created) && return end on(:invalid) do render(json: @form.errors, status: :unprocessable_entity) && return end end end private def annotation @annotation ||= document.annotations.find(params[:id]) end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems