feat(graphql): use camelize with inflection

This commit is contained in:
Paul Chavard 2023-07-27 12:19:07 +02:00
parent a4b8ad8f3c
commit 0ca72492e3
5 changed files with 36 additions and 8 deletions

View file

@ -322,8 +322,8 @@ class API::V2::StoredQuery
dateFermeture
notice { url }
deliberation { url }
demarcheUrl
cadreJuridiqueUrl
demarcheURL
cadreJuridiqueURL
service @include(if: $includeService) {
...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
"""
cadreJuridiqueUrl: String
cadreJuridiqueURL: String
cadreJuridiqueUrl: String @deprecated(reason: "Utilisez le champ `cadreJuridiqueURL` à la place.")
"""
Date de la création.
@ -1106,7 +1107,8 @@ type DemarcheDescriptor {
"""
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.
@ -1116,7 +1118,8 @@ type DemarcheDescriptor {
"""
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.
@ -1129,7 +1132,8 @@ type DemarcheDescriptor {
notice explicative de la démarche
"""
notice: File
noticeUrl: URL
noticeURL: URL
noticeUrl: URL @deprecated(reason: "Utilisez le champ `noticeURL` à la place.")
"""
Numero de la démarche.
@ -1142,7 +1146,8 @@ type DemarcheDescriptor {
"""
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.

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 :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 :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
@ -77,22 +83,27 @@ Cela évite laccès récursif aux dossiers."
def demarche_url
Rails.application.routes.url_helpers.commencer_url(path: procedure.path)
end
alias demarcheUrl demarche_url
def dpo_url
procedure.lien_dpo
end
alias dpoUrl dpo_url
def notice_url
procedure.lien_notice
end
alias noticeUrl notice_url
def cadre_juridique_url
procedure.cadre_juridique
end
alias cadreJuridiqueUrl cadre_juridique_url
def site_web_url
procedure.lien_site_web
end
alias siteWebUrl site_web_url
def number
procedure.id

View file

@ -3,3 +3,15 @@ GraphQL::RailsLogger.configure do |config|
'API::V2::GraphqlController' => ['execute']
}
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 {
expect(gql_errors).to be_nil
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