fix(dossiers/api_down): specific error when API Entreprise is globally down.

This commit is contained in:
Colin Darie 2022-09-15 18:53:41 +02:00
parent d1c06aa92e
commit c4f6305b3a
3 changed files with 27 additions and 3 deletions

View file

@ -114,8 +114,15 @@ module Users
sanitized_siret = siret_model.siret
begin
etablissement = APIEntrepriseService.create_etablissement(@dossier, sanitized_siret, current_user.id)
rescue APIEntreprise::API::Error::RequestFailed, APIEntreprise::API::Error::BadGateway, APIEntreprise::API::Error::TimedOut, APIEntreprise::API::Error::ServiceUnavailable, APIEntrepriseToken::TokenError
return render_siret_error(t('errors.messages.siret_network_error'))
rescue APIEntreprise::API::Error::RequestFailed, APIEntreprise::API::Error::BadGateway, APIEntreprise::API::Error::TimedOut, APIEntreprise::API::Error::ServiceUnavailable, APIEntrepriseToken::TokenError => e
if e.is_a?(APIEntrepriseToken::TokenError) || APIEntrepriseService.api_up?
# probably random error, invite user to retry
Sentry.capture_exception(e, extra: { dossier_id: @dossier.id, siret: sanitized_siret })
return render_siret_error(t('errors.messages.siret_network_error'))
else
# global API Entreprise error. TODO: degraded mode + notify ops
return render_siret_error(t('errors.messages.siret_api_down'))
end
end
if etablissement.nil?
return render_siret_error(t('errors.messages.siret_unknown'))