[GraphQL]: informations du service
This commit is contained in:
parent
da431295c3
commit
b5eafdab56
4 changed files with 76 additions and 1 deletions
|
@ -285,6 +285,7 @@ type Demarche {
|
||||||
Le numero de la démarche.
|
Le numero de la démarche.
|
||||||
"""
|
"""
|
||||||
number: Int!
|
number: Int!
|
||||||
|
service: Service!
|
||||||
|
|
||||||
"""
|
"""
|
||||||
L'état de la démarche.
|
L'état de la démarche.
|
||||||
|
@ -935,6 +936,13 @@ type SelectionUtilisateur implements GeoArea {
|
||||||
source: GeoAreaSource!
|
source: GeoAreaSource!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type Service {
|
||||||
|
id: ID!
|
||||||
|
nom: String!
|
||||||
|
organisme: String!
|
||||||
|
typeOrganisme: TypeOrganisme!
|
||||||
|
}
|
||||||
|
|
||||||
type SiretChamp implements Champ {
|
type SiretChamp implements Champ {
|
||||||
etablissement: PersonneMorale
|
etablissement: PersonneMorale
|
||||||
id: ID!
|
id: ID!
|
||||||
|
@ -1102,6 +1110,43 @@ enum TypeDeChamp {
|
||||||
yes_no
|
yes_no
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum TypeOrganisme {
|
||||||
|
"""
|
||||||
|
Administration centrale
|
||||||
|
"""
|
||||||
|
administration_centrale
|
||||||
|
|
||||||
|
"""
|
||||||
|
Association
|
||||||
|
"""
|
||||||
|
association
|
||||||
|
|
||||||
|
"""
|
||||||
|
Autre
|
||||||
|
"""
|
||||||
|
autre
|
||||||
|
|
||||||
|
"""
|
||||||
|
Collectivité territoriale
|
||||||
|
"""
|
||||||
|
collectivite_territoriale
|
||||||
|
|
||||||
|
"""
|
||||||
|
Établissement d’enseignement
|
||||||
|
"""
|
||||||
|
etablissement_enseignement
|
||||||
|
|
||||||
|
"""
|
||||||
|
Opérateur d'État
|
||||||
|
"""
|
||||||
|
operateur_d_etat
|
||||||
|
|
||||||
|
"""
|
||||||
|
Service déconcentré de l'État
|
||||||
|
"""
|
||||||
|
service_deconcentre_de_l_etat
|
||||||
|
}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
A valid URL, transported as a string
|
A valid URL, transported as a string
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -29,6 +29,7 @@ module Types
|
||||||
field :date_fermeture, GraphQL::Types::ISO8601DateTime, "Date de la fermeture.", null: true, method: :closed_at
|
field :date_fermeture, GraphQL::Types::ISO8601DateTime, "Date de la fermeture.", null: true, method: :closed_at
|
||||||
|
|
||||||
field :groupe_instructeurs, [Types::GroupeInstructeurType], null: false
|
field :groupe_instructeurs, [Types::GroupeInstructeurType], null: false
|
||||||
|
field :service, Types::ServiceType, null: false
|
||||||
|
|
||||||
field :dossiers, Types::DossierType.connection_type, "Liste de tous les dossiers d'une démarche.", null: false do
|
field :dossiers, Types::DossierType.connection_type, "Liste de tous les dossiers d'une démarche.", null: false do
|
||||||
argument :order, Types::Order, default_value: :asc, required: false, description: "L'ordre des dossiers."
|
argument :order, Types::Order, default_value: :asc, required: false, description: "L'ordre des dossiers."
|
||||||
|
@ -48,6 +49,10 @@ module Types
|
||||||
Loaders::Association.for(object.class, groupe_instructeurs: { procedure: [:administrateurs] }).load(object)
|
Loaders::Association.for(object.class, groupe_instructeurs: { procedure: [:administrateurs] }).load(object)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def service
|
||||||
|
Loaders::Record.for(Service).load(object.service_id)
|
||||||
|
end
|
||||||
|
|
||||||
def dossiers(updated_since: nil, created_since: nil, state: nil, order:)
|
def dossiers(updated_since: nil, created_since: nil, state: nil, order:)
|
||||||
dossiers = object.dossiers.state_not_brouillon.for_api_v2
|
dossiers = object.dossiers.state_not_brouillon.for_api_v2
|
||||||
|
|
||||||
|
|
15
app/graphql/types/service_type.rb
Normal file
15
app/graphql/types/service_type.rb
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
module Types
|
||||||
|
class ServiceType < Types::BaseObject
|
||||||
|
class TypeOrganisme < Types::BaseEnum
|
||||||
|
Service.type_organismes.each do |symbol_name, string_name|
|
||||||
|
value(string_name, I18n.t(symbol_name, scope: [:type_organisme]), value: symbol_name)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
global_id_field :id
|
||||||
|
|
||||||
|
field :nom, String, null: false
|
||||||
|
field :type_organisme, TypeOrganisme, null: false
|
||||||
|
field :organisme, String, null: false
|
||||||
|
end
|
||||||
|
end
|
|
@ -3,7 +3,7 @@ require 'spec_helper'
|
||||||
describe API::V2::GraphqlController do
|
describe API::V2::GraphqlController do
|
||||||
let(:admin) { create(:administrateur) }
|
let(:admin) { create(:administrateur) }
|
||||||
let(:token) { admin.renew_api_token }
|
let(:token) { admin.renew_api_token }
|
||||||
let(:procedure) { create(:procedure, :published, :for_individual, :with_all_champs, administrateurs: [admin]) }
|
let(:procedure) { create(:procedure, :published, :for_individual, :with_service, :with_all_champs, administrateurs: [admin]) }
|
||||||
let(:dossier) do
|
let(:dossier) do
|
||||||
dossier = create(:dossier,
|
dossier = create(:dossier,
|
||||||
:en_construction,
|
:en_construction,
|
||||||
|
@ -40,6 +40,11 @@ describe API::V2::GraphqlController do
|
||||||
email
|
email
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
service {
|
||||||
|
nom
|
||||||
|
typeOrganisme
|
||||||
|
organisme
|
||||||
|
}
|
||||||
champDescriptors {
|
champDescriptors {
|
||||||
id
|
id
|
||||||
type
|
type
|
||||||
|
@ -90,6 +95,11 @@ describe API::V2::GraphqlController do
|
||||||
label: "défaut"
|
label: "défaut"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
service: {
|
||||||
|
nom: procedure.service.nom,
|
||||||
|
typeOrganisme: procedure.service.type_organisme,
|
||||||
|
organisme: procedure.service.organisme
|
||||||
|
},
|
||||||
champDescriptors: procedure.types_de_champ.map do |tdc|
|
champDescriptors: procedure.types_de_champ.map do |tdc|
|
||||||
{
|
{
|
||||||
id: tdc.to_typed_id,
|
id: tdc.to_typed_id,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue