4 changed files with 86 additions and 1 deletions
@ -0,0 +1,32 @@ |
|||||||
|
module Api |
||||||
|
module Jurisprudence |
||||||
|
class CitedInsController < ::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.citing_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 || "", |
||||||
|
}, |
||||||
|
documents: docs.map { |doc| doc.to_builder(current_ability).attributes! } |
||||||
|
} |
||||||
|
end |
||||||
|
|
||||||
|
render json: response |
||||||
|
end |
||||||
|
end |
||||||
|
end |
||||||
|
end |
||||||
@ -0,0 +1,33 @@ |
|||||||
|
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 |
||||||
Loading…
Reference in new issue