Merge pull request #9367 from tchak/graphql-camelize

feat(graphql): use camelize with inflection
This commit is contained in:
Paul Chavard 2023-08-01 13:51:40 +00:00 committed by GitHub
commit 3c309fb614
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 36 additions and 8 deletions

View file

@ -322,8 +322,8 @@ class API::V2::StoredQuery
dateFermeture dateFermeture
notice { url } notice { url }
deliberation { url } deliberation { url }
demarcheUrl demarcheURL
cadreJuridiqueUrl cadreJuridiqueURL
service @include(if: $includeService) { service @include(if: $includeService) {
...ServiceFragment ...ServiceFragment
} }

View file

@ -1066,7 +1066,8 @@ type DemarcheDescriptor {
""" """
URL du cadre juridique qui justifie le droit de collecter les données demandées dans la démarche URL du cadre juridique qui justifie le droit de collecter les données demandées dans la démarche
""" """
cadreJuridiqueUrl: String cadreJuridiqueURL: String
cadreJuridiqueUrl: String @deprecated(reason: "Utilisez le champ `cadreJuridiqueURL` à la place.")
""" """
Date de la création. Date de la création.
@ -1106,7 +1107,8 @@ type DemarcheDescriptor {
""" """
URL pour commencer la démarche URL pour commencer la démarche
""" """
demarcheUrl: URL demarcheURL: URL
demarcheUrl: URL @deprecated(reason: "Utilisez le champ `demarcheURL` à la place.")
""" """
Description de la démarche. Description de la démarche.
@ -1116,7 +1118,8 @@ type DemarcheDescriptor {
""" """
URL ou email pour contacter le Délégué à la Protection des Données (DPO) URL ou email pour contacter le Délégué à la Protection des Données (DPO)
""" """
dpoUrl: String dpoURL: String
dpoUrl: String @deprecated(reason: "Utilisez le champ `dpoURL` à la place.")
""" """
Durée de conservation des dossiers en mois. Durée de conservation des dossiers en mois.
@ -1129,7 +1132,8 @@ type DemarcheDescriptor {
notice explicative de la démarche notice explicative de la démarche
""" """
notice: File notice: File
noticeUrl: URL noticeURL: URL
noticeUrl: URL @deprecated(reason: "Utilisez le champ `noticeURL` à la place.")
""" """
Numero de la démarche. Numero de la démarche.
@ -1142,7 +1146,8 @@ type DemarcheDescriptor {
""" """
URL les usagers trouvent le lien vers la démarche URL les usagers trouvent le lien vers la démarche
""" """
siteWebUrl: String siteWebURL: String
siteWebUrl: String @deprecated(reason: "Utilisez le champ `siteWebURL` à la place.")
""" """
État de la démarche. État de la démarche.

View file

@ -25,6 +25,12 @@ Cela évite laccès récursif aux dossiers."
field :duree_conservation_dossiers, Int, "Durée de conservation des dossiers en mois.", null: false field :duree_conservation_dossiers, Int, "Durée de conservation des dossiers en mois.", null: false
field :demarcheUrl, Types::URL, camelize: false, null: true, deprecation_reason: 'Utilisez le champ `demarcheURL` à la place.'
field :siteWebUrl, String, camelize: false, null: true, deprecation_reason: 'Utilisez le champ `siteWebURL` à la place.'
field :dpoUrl, String, camelize: false, null: true, deprecation_reason: 'Utilisez le champ `dpoURL` à la place.'
field :noticeUrl, Types::URL, camelize: false, null: true, deprecation_reason: 'Utilisez le champ `noticeURL` à la place.'
field :cadreJuridiqueUrl, String, camelize: false, null: true, deprecation_reason: 'Utilisez le champ `cadreJuridiqueURL` à la place.'
field :demarche_url, Types::URL, "URL pour commencer la démarche", null: true field :demarche_url, Types::URL, "URL pour commencer la démarche", null: true
field :site_web_url, String, "URL où les usagers trouvent le lien vers la démarche", null: true field :site_web_url, String, "URL où les usagers trouvent le lien vers la démarche", null: true
field :dpo_url, String, "URL ou email pour contacter le Délégué à la Protection des Données (DPO)", null: true field :dpo_url, String, "URL ou email pour contacter le Délégué à la Protection des Données (DPO)", null: true
@ -77,22 +83,27 @@ Cela évite laccès récursif aux dossiers."
def demarche_url def demarche_url
Rails.application.routes.url_helpers.commencer_url(path: procedure.path) Rails.application.routes.url_helpers.commencer_url(path: procedure.path)
end end
alias demarcheUrl demarche_url
def dpo_url def dpo_url
procedure.lien_dpo procedure.lien_dpo
end end
alias dpoUrl dpo_url
def notice_url def notice_url
procedure.lien_notice procedure.lien_notice
end end
alias noticeUrl notice_url
def cadre_juridique_url def cadre_juridique_url
procedure.cadre_juridique procedure.cadre_juridique
end end
alias cadreJuridiqueUrl cadre_juridique_url
def site_web_url def site_web_url
procedure.lien_site_web procedure.lien_site_web
end end
alias siteWebUrl site_web_url
def number def number
procedure.id procedure.id

View file

@ -3,3 +3,15 @@ GraphQL::RailsLogger.configure do |config|
'API::V2::GraphqlController' => ['execute'] 'API::V2::GraphqlController' => ['execute']
} }
end end
module GraphQL
class Schema
class Member
module BuildType
def self.camelize(string)
string.camelize(:lower)
end
end
end
end
end

View file

@ -277,7 +277,7 @@ describe API::V2::GraphqlController do
it { it {
expect(gql_errors).to be_nil expect(gql_errors).to be_nil
expect(gql_data[:demarcheDescriptor][:id]).to eq(procedure.to_typed_id) expect(gql_data[:demarcheDescriptor][:id]).to eq(procedure.to_typed_id)
expect(gql_data[:demarcheDescriptor][:demarcheUrl]).to match("commencer/#{procedure.path}") expect(gql_data[:demarcheDescriptor][:demarcheURL]).to match("commencer/#{procedure.path}")
} }
end end