[graphql] add dossiersCount field

visible only for admin
This commit is contained in:
Christophe Robillard 2022-06-17 19:14:04 +02:00
parent 7684e97494
commit 886f595350
3 changed files with 10 additions and 0 deletions

View file

@ -1,5 +1,6 @@
module Types module Types
class DemarcheDescriptorType < Types::BaseObject class DemarcheDescriptorType < Types::BaseObject
field_class BaseField
description "Une démarche (métadonnées) description "Une démarche (métadonnées)
Ceci est une version abrégée du type `Demarche`, qui nexpose que les métadonnées. Ceci est une version abrégée du type `Demarche`, qui nexpose que les métadonnées.
Cela évite laccès récursif aux dossiers." Cela évite laccès récursif aux dossiers."
@ -23,6 +24,8 @@ Cela évite laccès récursif aux dossiers."
field :cadre_juridique, String, null: true field :cadre_juridique, String, null: true
field :deliberation, String, null: true field :deliberation, String, null: true
field :dossiers_count, Int, null: false, require_admin: true
def service def service
Loaders::Record.for(Service).load(procedure.service_id) Loaders::Record.for(Service).load(procedure.service_id)
end end
@ -31,6 +34,10 @@ Cela évite laccès récursif aux dossiers."
object.is_a?(ProcedureRevision) ? object : object.active_revision object.is_a?(ProcedureRevision) ? object : object.active_revision
end end
def dossiers_count
object.dossiers.count
end
def deliberation def deliberation
Rails.application.routes.url_helpers.url_for(procedure.deliberation) if procedure.deliberation.attached? Rails.application.routes.url_helpers.url_for(procedure.deliberation) if procedure.deliberation.attached?
end end

View file

@ -44,6 +44,7 @@ class DemarchesPubliquesExportService
service { nom organisme typeOrganisme } service { nom organisme typeOrganisme }
cadreJuridique cadreJuridique
deliberation deliberation
dossiersCount
revision { revision {
champDescriptors { champDescriptors {
type type

View file

@ -1,5 +1,6 @@
describe DemarchesPubliquesExportService do describe DemarchesPubliquesExportService do
let(:procedure) { create(:procedure, :published, :with_service, :with_type_de_champ) } let(:procedure) { create(:procedure, :published, :with_service, :with_type_de_champ) }
let!(:dossier) { create(:dossier, procedure: procedure) }
let(:io) { StringIO.new } let(:io) { StringIO.new }
describe 'call' do describe 'call' do
@ -16,6 +17,7 @@ describe DemarchesPubliquesExportService do
cadreJuridique: "un cadre juridique important", cadreJuridique: "un cadre juridique important",
deliberation: nil, deliberation: nil,
datePublication: procedure.published_at.iso8601, datePublication: procedure.published_at.iso8601,
dossiersCount: 1,
revision: { revision: {
champDescriptors: [ champDescriptors: [
{ {