review: detailled error message

This commit is contained in:
sebastiencarceles 2023-01-16 15:14:53 +01:00
parent 2ad4e4c01f
commit 30eef3e128
6 changed files with 43 additions and 10 deletions

View file

@ -5,7 +5,8 @@ module SiretChampEtablissementFetchableConcern
def fetch_etablissement!(siret, user)
return clear_etablissement!(:empty) if siret.empty?
return clear_etablissement!(:invalid) unless Siret.new(siret: siret).valid? # i18n-tasks-use t('errors.messages.invalid_siret')
return clear_etablissement!(:invalid_length) if invalid_because?(siret, :length) # i18n-tasks-use t('errors.messages.invalid_siret_length')
return clear_etablissement!(:invalid_checksum) if invalid_because?(siret, :checksum) # i18n-tasks-use t('errors.messages.invalid_siret_checksum')
return clear_etablissement!(:not_found) unless (etablissement = APIEntrepriseService.create_etablissement(self, siret, user&.id)) # i18n-tasks-use t('errors.messages.siret_not_found')
update!(value: siret, etablissement: etablissement)
@ -35,4 +36,11 @@ module SiretChampEtablissementFetchableConcern
false
end
def invalid_because?(siret, criteria)
validatable_siret = Siret.new(siret: siret)
return false if validatable_siret.valid?
validatable_siret.errors.details[:siret].any? && validatable_siret.errors.details[:siret].first[:error] == criteria
end
end

View file

@ -1,6 +1,9 @@
- case siret
- when :invalid
Le numéro de SIRET doit comporter exactement 14 chiffres.
- when :invalid_length
= t('errors.messages.invalid_siret_length')
- when :invalid_checksum
= t('errors.messages.invalid_siret_checksum')
- when :not_found
Nous navons pas trouvé détablissement correspondant à ce numéro de SIRET.