Merge pull request #6401 from tchak/feat-graphql-dossier-demarche
feat(graphql): expose demarche descriptor on dossier type
This commit is contained in:
commit
dad9c0473c
5 changed files with 105 additions and 10 deletions
|
@ -406,7 +406,7 @@ interface Demandeur {
|
||||||
}
|
}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Une demarche
|
Une démarche
|
||||||
"""
|
"""
|
||||||
type Demarche {
|
type Demarche {
|
||||||
annotationDescriptors: [ChampDescriptor!]!
|
annotationDescriptors: [ChampDescriptor!]!
|
||||||
|
@ -438,7 +438,7 @@ type Demarche {
|
||||||
datePublication: ISO8601DateTime
|
datePublication: ISO8601DateTime
|
||||||
|
|
||||||
"""
|
"""
|
||||||
L’état de dossier pour une démarche déclarative
|
Pour une démarche déclarative, état cible des dossiers à valider automatiquement
|
||||||
"""
|
"""
|
||||||
declarative: DossierDeclarativeState
|
declarative: DossierDeclarativeState
|
||||||
|
|
||||||
|
@ -551,7 +551,7 @@ type Demarche {
|
||||||
id: ID!
|
id: ID!
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Le numero de la démarche.
|
Numero de la démarche.
|
||||||
"""
|
"""
|
||||||
number: Int!
|
number: Int!
|
||||||
publishedRevision: Revision
|
publishedRevision: Revision
|
||||||
|
@ -559,12 +559,70 @@ type Demarche {
|
||||||
service: Service!
|
service: Service!
|
||||||
|
|
||||||
"""
|
"""
|
||||||
L’état de la démarche.
|
État de la démarche.
|
||||||
"""
|
"""
|
||||||
state: DemarcheState!
|
state: DemarcheState!
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Le titre de la démarche.
|
Titre de la démarche.
|
||||||
|
"""
|
||||||
|
title: String!
|
||||||
|
}
|
||||||
|
|
||||||
|
"""
|
||||||
|
Une démarche (métadonnées)
|
||||||
|
Ceci est une version abrégée du type `Demarche`, qui n’expose que les métadonnées.
|
||||||
|
Cela évite l’accès récursif aux dossiers.
|
||||||
|
"""
|
||||||
|
type DemarcheDescriptor {
|
||||||
|
"""
|
||||||
|
Date de la création.
|
||||||
|
"""
|
||||||
|
dateCreation: ISO8601DateTime!
|
||||||
|
|
||||||
|
"""
|
||||||
|
Date de la dépublication.
|
||||||
|
"""
|
||||||
|
dateDepublication: ISO8601DateTime
|
||||||
|
|
||||||
|
"""
|
||||||
|
Date de la dernière modification.
|
||||||
|
"""
|
||||||
|
dateDerniereModification: ISO8601DateTime!
|
||||||
|
|
||||||
|
"""
|
||||||
|
Date de la fermeture.
|
||||||
|
"""
|
||||||
|
dateFermeture: ISO8601DateTime
|
||||||
|
|
||||||
|
"""
|
||||||
|
Date de la publication.
|
||||||
|
"""
|
||||||
|
datePublication: ISO8601DateTime
|
||||||
|
|
||||||
|
"""
|
||||||
|
Pour une démarche déclarative, état cible des dossiers à valider automatiquement
|
||||||
|
"""
|
||||||
|
declarative: DossierDeclarativeState
|
||||||
|
|
||||||
|
"""
|
||||||
|
Description de la démarche.
|
||||||
|
"""
|
||||||
|
description: String!
|
||||||
|
id: ID!
|
||||||
|
|
||||||
|
"""
|
||||||
|
Numero de la démarche.
|
||||||
|
"""
|
||||||
|
number: Int!
|
||||||
|
|
||||||
|
"""
|
||||||
|
État de la démarche.
|
||||||
|
"""
|
||||||
|
state: DemarcheState!
|
||||||
|
|
||||||
|
"""
|
||||||
|
Titre de la démarche.
|
||||||
"""
|
"""
|
||||||
title: String!
|
title: String!
|
||||||
}
|
}
|
||||||
|
@ -650,6 +708,7 @@ type Dossier {
|
||||||
"""
|
"""
|
||||||
dateTraitement: ISO8601DateTime
|
dateTraitement: ISO8601DateTime
|
||||||
demandeur: Demandeur!
|
demandeur: Demandeur!
|
||||||
|
demarche: DemarcheDescriptor!
|
||||||
|
|
||||||
"""
|
"""
|
||||||
L’URL du GeoJSON contenant les données cartographiques du dossier.
|
L’URL du GeoJSON contenant les données cartographiques du dossier.
|
||||||
|
|
24
app/graphql/types/demarche_descriptor_type.rb
Normal file
24
app/graphql/types/demarche_descriptor_type.rb
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
module Types
|
||||||
|
class DemarcheDescriptorType < Types::BaseObject
|
||||||
|
description "Une démarche (métadonnées)
|
||||||
|
Ceci est une version abrégée du type `Demarche`, qui n’expose que les métadonnées.
|
||||||
|
Cela évite l’accès récursif aux dossiers."
|
||||||
|
|
||||||
|
global_id_field :id
|
||||||
|
field :number, Int, "Numero de la démarche.", null: false, method: :id
|
||||||
|
field :title, String, "Titre de la démarche.", null: false, method: :libelle
|
||||||
|
field :description, String, "Description de la démarche.", null: false
|
||||||
|
field :state, Types::DemarcheType::DemarcheState, "État de la démarche.", null: false
|
||||||
|
field :declarative, Types::DemarcheType::DossierDeclarativeState, "Pour une démarche déclarative, état cible des dossiers à valider automatiquement", null: true, method: :declarative_with_state
|
||||||
|
|
||||||
|
field :date_creation, GraphQL::Types::ISO8601DateTime, "Date de la création.", null: false, method: :created_at
|
||||||
|
field :date_publication, GraphQL::Types::ISO8601DateTime, "Date de la publication.", null: true, method: :published_at
|
||||||
|
field :date_derniere_modification, GraphQL::Types::ISO8601DateTime, "Date de la dernière modification.", null: false, method: :updated_at
|
||||||
|
field :date_depublication, GraphQL::Types::ISO8601DateTime, "Date de la dépublication.", null: true, method: :unpublished_at
|
||||||
|
field :date_fermeture, GraphQL::Types::ISO8601DateTime, "Date de la fermeture.", null: true, method: :closed_at
|
||||||
|
|
||||||
|
def state
|
||||||
|
object.aasm.current_state
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -14,14 +14,14 @@ module Types
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
description "Une demarche"
|
description "Une démarche"
|
||||||
|
|
||||||
global_id_field :id
|
global_id_field :id
|
||||||
field :number, Int, "Le numero de la démarche.", null: false, method: :id
|
field :number, Int, "Numero de la démarche.", null: false, method: :id
|
||||||
field :title, String, "Le titre de la démarche.", null: false, method: :libelle
|
field :title, String, "Titre de la démarche.", null: false, method: :libelle
|
||||||
field :description, String, "Description de la démarche.", null: false
|
field :description, String, "Description de la démarche.", null: false
|
||||||
field :state, DemarcheState, "L’état de la démarche.", null: false
|
field :state, DemarcheState, "État de la démarche.", null: false
|
||||||
field :declarative, DossierDeclarativeState, "L’état de dossier pour une démarche déclarative", null: true, method: :declarative_with_state
|
field :declarative, DossierDeclarativeState, "Pour une démarche déclarative, état cible des dossiers à valider automatiquement", null: true, method: :declarative_with_state
|
||||||
|
|
||||||
field :date_creation, GraphQL::Types::ISO8601DateTime, "Date de la création.", null: false, method: :created_at
|
field :date_creation, GraphQL::Types::ISO8601DateTime, "Date de la création.", null: false, method: :created_at
|
||||||
field :date_publication, GraphQL::Types::ISO8601DateTime, "Date de la publication.", null: true, method: :published_at
|
field :date_publication, GraphQL::Types::ISO8601DateTime, "Date de la publication.", null: true, method: :published_at
|
||||||
|
|
|
@ -12,6 +12,8 @@ module Types
|
||||||
field :number, Int, "Le numero du dossier.", null: false, method: :id
|
field :number, Int, "Le numero du dossier.", null: false, method: :id
|
||||||
field :state, DossierState, "L’état du dossier.", null: false
|
field :state, DossierState, "L’état du dossier.", null: false
|
||||||
|
|
||||||
|
field :demarche, Types::DemarcheDescriptorType, null: false, method: :procedure
|
||||||
|
|
||||||
field :date_passage_en_construction, GraphQL::Types::ISO8601DateTime, "Date de dépôt.", null: false, method: :en_construction_at
|
field :date_passage_en_construction, GraphQL::Types::ISO8601DateTime, "Date de dépôt.", null: false, method: :en_construction_at
|
||||||
field :date_passage_en_instruction, GraphQL::Types::ISO8601DateTime, "Date de passage en instruction.", null: true, method: :en_instruction_at
|
field :date_passage_en_instruction, GraphQL::Types::ISO8601DateTime, "Date de passage en instruction.", null: true, method: :en_instruction_at
|
||||||
field :date_traitement, GraphQL::Types::ISO8601DateTime, "Date de traitement.", null: true, method: :processed_at
|
field :date_traitement, GraphQL::Types::ISO8601DateTime, "Date de traitement.", null: true, method: :processed_at
|
||||||
|
|
|
@ -310,6 +310,11 @@ describe API::V2::GraphqlController do
|
||||||
motivationAttachment {
|
motivationAttachment {
|
||||||
url
|
url
|
||||||
}
|
}
|
||||||
|
demarche {
|
||||||
|
number
|
||||||
|
title
|
||||||
|
state
|
||||||
|
}
|
||||||
usager {
|
usager {
|
||||||
id
|
id
|
||||||
email
|
email
|
||||||
|
@ -382,6 +387,11 @@ describe API::V2::GraphqlController do
|
||||||
dateTraitement: nil,
|
dateTraitement: nil,
|
||||||
motivation: nil,
|
motivation: nil,
|
||||||
motivationAttachment: nil,
|
motivationAttachment: nil,
|
||||||
|
demarche: {
|
||||||
|
number: dossier.procedure.id,
|
||||||
|
title: dossier.procedure.libelle,
|
||||||
|
state: 'publiee'
|
||||||
|
},
|
||||||
usager: {
|
usager: {
|
||||||
id: dossier.user.to_typed_id,
|
id: dossier.user.to_typed_id,
|
||||||
email: dossier.user.email
|
email: dossier.user.email
|
||||||
|
|
Loading…
Reference in a new issue