Merge pull request #1728 from tchak/handle-partial-success-as-error

Improvements to API Entreprise: handle partial success as error and ajax errors
This commit is contained in:
gregoirenovel 2018-03-27 14:02:19 +02:00 committed by GitHub
commit b7d31aac96
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 10 deletions

View file

@ -1,4 +1,6 @@
$(document).on('turbolinks:load', the_terms);
$(document)
.on('turbolinks:load', the_terms)
.on('turbolinks:load', handle_siret_form_errors);
function the_terms() {
var the_terms = $("#dossier_autorisation_donnees");
@ -41,3 +43,13 @@ function toggle_etape_1() {
$('.row.etape.etape_1 .etapes-menu #logos').toggle(100);
$('.row.etape.etape_1 .etapes-informations #description_procedure').toggle(100);
}
function handle_siret_form_errors() {
$(".form-inline[data-remote]").on("ajax:error", function(event) {
var input = $('#dossier-siret', event.target);
if (input.length) {
var invalid_siret = input.val();
error_form_siret(invalid_siret);
}
});
}

View file

@ -106,15 +106,11 @@ class Users::DossiersController < UsersController
update_current_user_siret!(siret)
etablissement_attributes = SIRETService.fetch(siret, @facade.dossier)
Rails.logger.info("etablissement_attributes for siret: #{siret}, present?: #{etablissement_attributes.present?}")
if etablissement_attributes.present?
etablissement_attributes = ActionController::Parameters.new(etablissement_attributes).permit!
etablissement = @facade.dossier.build_etablissement(etablissement_attributes)
if etablissement.save
Rails.logger.info("etablissement saved, siret: #{siret}, id: #{etablissement.id}")
else
Rails.logger.info("etablissement not saved, siret: #{siret}, errors: #{etablissement.errors.full_messages}")
if !etablissement.save
return errors_valid_siret
end
else
@ -128,9 +124,6 @@ class Users::DossiersController < UsersController
else
render '/dossiers/new_siret', formats: 'js'
end
rescue RestClient::ResourceNotFound, RestClient::BadRequest
errors_valid_siret
rescue ActiveRecord::RecordNotFound
flash.alert = t('errors.messages.dossier_not_found')
redirect_to url_for users_dossiers_path

View file

@ -36,7 +36,7 @@ class ApiEntreprise::API
params: params,
timeout: 20)
if response.success?
if response.success? && response.code != 206
JSON.parse(response.body, symbolize_names: true)
else
raise RestClient::ResourceNotFound