aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuc Donnet2015-05-20 13:34:32 +0200
committerLuc Donnet2015-05-20 13:34:32 +0200
commitd54aad9538e9452498c8d5a98628f4af2d9f87c5 (patch)
tree41fa9159638f0255cbefcd9039bccc7c94f5db6a
parent57945951bdd6a2b861d2b799eca22aadee8b81a4 (diff)
downloadchouette-core-d54aad9538e9452498c8d5a98628f4af2d9f87c5.tar.bz2
Integration of failure for iev and use faraday exception in controller Bug Refs #0035646
-rw-r--r--app/controllers/compliance_check_tasks_controller.rb8
-rw-r--r--app/controllers/compliance_checks_controller.rb12
-rw-r--r--app/controllers/export_tasks_controller.rb8
-rw-r--r--app/controllers/exports_controller.rb16
-rw-r--r--app/controllers/import_tasks_controller.rb8
-rw-r--r--app/controllers/imports_controller.rb24
-rw-r--r--app/models/concerns/report_concern.rb8
-rw-r--r--app/views/imports/show.html.erb5
-rw-r--r--config/locales/iev.en.yml9
-rw-r--r--config/locales/iev.fr.yml22
-rw-r--r--lib/ievkit/response/raise_error.rb9
11 files changed, 81 insertions, 48 deletions
diff --git a/app/controllers/compliance_check_tasks_controller.rb b/app/controllers/compliance_check_tasks_controller.rb
index cc5ba8ee7..6c25d2d48 100644
--- a/app/controllers/compliance_check_tasks_controller.rb
+++ b/app/controllers/compliance_check_tasks_controller.rb
@@ -9,9 +9,9 @@ class ComplianceCheckTasksController < ChouetteController
def new
begin
new!
- rescue Ievkit::Error => error
+ rescue Ievkit::Error, Faraday::Error => error
logger.error("Iev failure : #{error.message}")
- flash[:error] = t('iev.failure')
+ flash[:error] = t('iev.exception.default')
redirect_to referential_path(@referential)
end
end
@@ -21,9 +21,9 @@ class ComplianceCheckTasksController < ChouetteController
create! do |success, failure|
success.html { redirect_to referential_compliance_checks_path(@referential) }
end
- rescue Ievkit::Error => error
+ rescue Ievkit::Error, Faraday::Error => error
logger.error("Iev failure : #{error.message}")
- flash[:error] = t('iev.failure')
+ flash[:error] = t('iev.exception.default')
redirect_to referential_path(@referential)
end
end
diff --git a/app/controllers/compliance_checks_controller.rb b/app/controllers/compliance_checks_controller.rb
index 9a6657e5c..4949edbd7 100644
--- a/app/controllers/compliance_checks_controller.rb
+++ b/app/controllers/compliance_checks_controller.rb
@@ -12,9 +12,9 @@ class ComplianceChecksController < ChouetteController
index! do
build_breadcrumb :index
end
- rescue Ievkit::Error => error
+ rescue Ievkit::Error, Faraday::Error => error
logger.error("Iev failure : #{error.message}")
- flash[:error] = t('iev.failure')
+ flash[:error] = t('iev.exception.default')
redirect_to referential_path(@referential)
end
end
@@ -24,9 +24,9 @@ class ComplianceChecksController < ChouetteController
show! do |format|
build_breadcrumb :show
end
- rescue Ievkit::Error => error
+ rescue Ievkit::Error, Faraday::Error => error
logger.error("Iev failure : #{error.message}")
- flash[:error] = t('iev.failure')
+ flash[:error] = t('iev.exception.default')
redirect_to referential_path(@referential)
end
end
@@ -45,9 +45,9 @@ class ComplianceChecksController < ChouetteController
@rule_parameter_set = resource.rule_parameter_set
build_breadcrumb :rule_parameter_set
render "rule_parameter_sets/show"
- rescue Ievkit::Error => error
+ rescue Ievkit::Error, Faraday::Error => error
logger.error("Iev failure : #{error.message}")
- flash[:error] = t('iev.failure')
+ flash[:error] = t('iev.exception.default')
redirect_to referential_path(@referential)
end
end
diff --git a/app/controllers/export_tasks_controller.rb b/app/controllers/export_tasks_controller.rb
index 94312cd6a..9eedd1b94 100644
--- a/app/controllers/export_tasks_controller.rb
+++ b/app/controllers/export_tasks_controller.rb
@@ -9,9 +9,9 @@ class ExportTasksController < ChouetteController
@available_exports = available_exports
begin
new!
- rescue Ievkit::Error => error
+ rescue Ievkit::Error, Faraday::Error => error
logger.error("Iev failure : #{error.message}")
- flash[:error] = t('iev.failure')
+ flash[:error] = t('iev.exception.default')
redirect_to referential_path(@referential)
end
end
@@ -22,9 +22,9 @@ class ExportTasksController < ChouetteController
create! do |success, failure|
success.html { redirect_to referential_exports_path(@referential) }
end
- rescue Ievkit::Error => error
+ rescue Ievkit::Error, Faraday::Error => error
logger.error("Iev failure : #{error.message}")
- flash[:error] = t('iev.failure')
+ flash[:error] = t('iev.exception.default')
redirect_to referential_path(@referential)
end
end
diff --git a/app/controllers/exports_controller.rb b/app/controllers/exports_controller.rb
index 68ee00568..80c70902e 100644
--- a/app/controllers/exports_controller.rb
+++ b/app/controllers/exports_controller.rb
@@ -13,9 +13,9 @@ class ExportsController < ChouetteController
index! do
build_breadcrumb :index
end
- rescue Ievkit::Error => error
+ rescue Ievkit::Error, Faraday::Error => error
logger.error("Iev failure : #{error.message}")
- flash[:error] = t('iev.failure')
+ flash[:error] = t('iev.exception.default')
redirect_to referential_path(@referential)
end
end
@@ -25,9 +25,9 @@ class ExportsController < ChouetteController
show! do
build_breadcrumb :show
end
- rescue Ievkit::Error => error
+ rescue Ievkit::Error, Faraday::Error => error
logger.error("Iev failure : #{error.message}")
- flash[:error] = t('iev.failure')
+ flash[:error] = t('iev.exception.default')
redirect_to referential_path(@referential)
end
end
@@ -35,9 +35,9 @@ class ExportsController < ChouetteController
def destroy
begin
destroy!
- rescue Ievkit::Error => error
+ rescue Ievkit::Error, Faraday::Error => error
logger.error("Iev failure : #{error.message}")
- flash[:error] = t('iev.failure')
+ flash[:error] = t('iev.exception.default')
redirect_to referential_path(@referential)
end
end
@@ -49,9 +49,9 @@ class ExportsController < ChouetteController
OpenURI::Buffer.const_set 'StringMax', 0
begin
send_file open(resource.file_path), { :type => "application/#{resource.filename_extension}", :disposition => "attachment", :filename => resource.filename }
- rescue Ievkit::Error => error
+ rescue Ievkit::Error, Faraday::Error => error
logger.error("Iev failure : #{error.message}")
- flash[:error] = t('iev.failure')
+ flash[:error] = t('iev.exception.default')
redirect_to referential_path(@referential)
end
end
diff --git a/app/controllers/import_tasks_controller.rb b/app/controllers/import_tasks_controller.rb
index 52988ce75..0e3ed6445 100644
--- a/app/controllers/import_tasks_controller.rb
+++ b/app/controllers/import_tasks_controller.rb
@@ -10,9 +10,9 @@ class ImportTasksController < ChouetteController
@available_imports = available_imports
begin
new!
- rescue Ievkit::Error => error
+ rescue Ievkit::Error, Faraday::Error => error
logger.error("Iev failure : #{error.message}")
- flash[:error] = t('iev.failure')
+ flash[:error] = t('iev.exception.default')
redirect_to referential_path(@referential)
end
end
@@ -23,9 +23,9 @@ class ImportTasksController < ChouetteController
create! do |success, failure|
success.html { redirect_to referential_imports_path(@referential) }
end
- rescue Ievkit::Error => error
+ rescue Ievkit::Error, Faraday::Error => error
logger.error("Iev failure : #{error.message}")
- flash[:error] = t('iev.failure')
+ flash[:error] = t('iev.exception.default')
redirect_to referential_path(@referential)
end
end
diff --git a/app/controllers/imports_controller.rb b/app/controllers/imports_controller.rb
index 2c6ba9511..b056af1fa 100644
--- a/app/controllers/imports_controller.rb
+++ b/app/controllers/imports_controller.rb
@@ -14,9 +14,9 @@ class ImportsController < ChouetteController
index! do
build_breadcrumb :index
end
- rescue Ievkit::Error => error
+ rescue Ievkit::Error, Faraday::Error => error
logger.error("Iev failure : #{error.message}")
- flash[:error] = t('iev.failure')
+ flash[:error] = t('iev.exception.default')
redirect_to referential_path(@referential)
end
end
@@ -24,9 +24,9 @@ class ImportsController < ChouetteController
def show
begin
show!
- rescue Ievkit::Error => error
+ rescue Ievkit::Error, Faraday::Error => error
logger.error("Iev failure : #{error.message}")
- flash[:error] = t('iev.failure')
+ flash[:error] = t('iev.exception.default')
redirect_to referential_path(@referential)
end
end
@@ -34,9 +34,9 @@ class ImportsController < ChouetteController
def destroy
begin
destroy!
- rescue Ievkit::Error => error
+ rescue Ievkit::Error, Faraday::Error => error
logger.error("Iev failure : #{error.message}")
- flash[:error] = t('iev.failure')
+ flash[:error] = t('iev.exception.default')
redirect_to referential_path(@referential)
end
end
@@ -48,9 +48,9 @@ class ImportsController < ChouetteController
OpenURI::Buffer.const_set 'StringMax', 0
begin
send_file open(resource.file_path), { :type => "application/#{resource.filename_extension}", :disposition => "attachment", :filename => resource.filename }
- rescue Ievkit::Error => error
+ rescue Ievkit::Error, Faraday::Error => error
logger.error("Iev failure : #{error.message}")
- flash[:error] = t('iev.failure')
+ flash[:error] = t('iev.exception.default')
redirect_to referential_path(@referential)
end
end
@@ -60,9 +60,9 @@ class ImportsController < ChouetteController
@rule_parameter_set = resource.rule_parameter_set
build_breadcrumb :rule_parameter_set
render "rule_parameter_sets/show"
- rescue Ievkit::Error => error
+ rescue Ievkit::Error, Faraday::Error => error
logger.error("Iev failure : #{error.message}")
- flash[:error] = t('iev.failure')
+ flash[:error] = t('iev.exception.default')
redirect_to referential_path(@referential)
end
end
@@ -78,9 +78,9 @@ class ImportsController < ChouetteController
@compliance_check = resource
build_breadcrumb :compliance_check
render "compliance_checks/show"
- rescue Ievkit::Error => error
+ rescue Ievkit::Error, Faraday::Error => error
logger.error("Iev failure : #{error.message}")
- flash[:error] = t('iev.failure')
+ flash[:error] = t('iev.exception.default')
redirect_to referential_path(@referential)
end
end
diff --git a/app/models/concerns/report_concern.rb b/app/models/concerns/report_concern.rb
index 762c86698..2f8df9f96 100644
--- a/app/models/concerns/report_concern.rb
+++ b/app/models/concerns/report_concern.rb
@@ -11,6 +11,14 @@ module ReportConcern
module ClassMethods
end
+ def failure_code?
+ datas.result == "NOK" && datas.failure?
+ end
+
+ def failure_code
+ datas.failure.code.downcase if failure_code?
+ end
+
def progression?
datas.progression?
end
diff --git a/app/views/imports/show.html.erb b/app/views/imports/show.html.erb
index c31d3d26b..226c9ea77 100644
--- a/app/views/imports/show.html.erb
+++ b/app/views/imports/show.html.erb
@@ -1,6 +1,11 @@
<div class="test">
<%= title_tag job_status_title(@import) %>
</div>
+<% if @import.report.failure_code? %>
+<div class="alert alert-danger">
+ <%= t("iev.failure.#{@import.report.failure_code}") %>
+</div>
+<% end %>
<div class="progress_bars">
<%= progress_bar_tag(@import) %>
</div>
diff --git a/config/locales/iev.en.yml b/config/locales/iev.en.yml
index d7b7088bf..8e58196cb 100644
--- a/config/locales/iev.en.yml
+++ b/config/locales/iev.en.yml
@@ -1,4 +1,11 @@
en:
iev:
- failure: "Impossible to access IEV service"
+ failure:
+ invalid_parameters: "Paramètres invalides"
+ no_data_found: "Pas de données à traiter dans l'ensemble du traitement"
+ no_data_proceeded: "Pas de données traitée dans l'ensemble du traitement"
+ invalid_data: "Données invalides"
+ internal_error: "Erreur interne"
+ exception:
+ default: "Impossible d'accéder au service IEV"
\ No newline at end of file
diff --git a/config/locales/iev.fr.yml b/config/locales/iev.fr.yml
index 5a7070c90..034bffb0f 100644
--- a/config/locales/iev.fr.yml
+++ b/config/locales/iev.fr.yml
@@ -1,4 +1,24 @@
fr:
iev:
- failure: "Impossible d'accéder au service IEV"
+ failure:
+ invalid_parameters: "Paramètres invalides"
+ no_data_found: "Pas de données à traiter dans l'ensemble du traitement"
+ no_data_proceeded: "Pas de données traitée dans l'ensemble du traitement"
+ invalid_data: "Données invalides"
+ internal_error: "Erreur interne"
+ exception:
+ default: "Impossible d'accéder aux services IEV"
+ invalid_request: "Requête invalide"
+ unknown_referential: "Référentiel inconnu"
+ unknown_file: "Fichier inconnu"
+ unknown_action: "Action ou type inconnu"
+ dupplicate_or_missing_data: "Donnée manquante ou en double"
+ dupplicate_parameters: "Paramètres fournis en double"
+ missing_parameters: "Paramètres d'action manquants"
+ invalid_parameters: "Paramètres d'action incorrects"
+ unreadable_parameters: "Paramètres non lisibles (format erroné)"
+ unknown_job: "Numéro de job inconnu"
+ scheduled_job: "Méthode interdite sur un job non terminé"
+ internal_error: "Erreur interne"
+
\ No newline at end of file
diff --git a/lib/ievkit/response/raise_error.rb b/lib/ievkit/response/raise_error.rb
index 21369a7cd..65aa3de45 100644
--- a/lib/ievkit/response/raise_error.rb
+++ b/lib/ievkit/response/raise_error.rb
@@ -14,14 +14,7 @@ module Ievkit
def on_complete(response)
if error = Ievkit::Error.from_response(response)
raise error
- end
-
- # Big horrible hack to fix
- #body = response[:body]
- #if body["{\"jobs\":"].present?
- # response[:body] = body.gsub("{\"jobs\":", "").chomp("}")
- #end
-
+ end
end
end
end