module Api module Jurisprudence class CrossReferencesController < ::Api::BaseController load_resource :document, class: "Cdao::Jurisprudence", id_param: :jurisprudence_id def index authorize! :read, @document response = { data: [] } document = @document where = { enabled: true, state: "published" } document.class.cited_docs_of(document, where).group_by { |a| a.class.name }.each do |klass, docs| klass = klass.gsub("Cdao::", "") library = Cdao::Library.find_by(document_type: klass) response[:data] << { library: { document_type: klass, display_name: library.try(:display_name).presence || "", name: library.try(:name).presence || "", }, data_id_prefix: "#{klass}-", documents: docs.map { |doc| doc.to_builder(current_ability).attributes! } } end render json: response end end end end