diff options
| author | Alban Peignier | 2017-08-28 00:27:29 +0200 |
|---|---|---|
| committer | Alban Peignier | 2017-08-28 00:27:29 +0200 |
| commit | d01ec772b1e65e5d00f56bcd288bf710d1b55712 (patch) | |
| tree | 5a251e3c08a4050fba629003bfbc33a6d62b919c /app/models | |
| parent | b240f38d661e6e11428e3f09258ba29bcbf228bb (diff) | |
| parent | d79f84398849e9c32fdf41582d299dd914fb8452 (diff) | |
| download | chouette-core-d01ec772b1e65e5d00f56bcd288bf710d1b55712.tar.bz2 | |
Merge branch '4273_http_service_broken'
Diffstat (limited to 'app/models')
| -rw-r--r-- | app/models/concerns/error_format.rb | 29 | ||||
| -rw-r--r-- | app/models/import.rb | 2 | ||||
| -rw-r--r-- | app/models/netex_import.rb | 16 | ||||
| -rw-r--r-- | app/models/workbench_import.rb | 5 |
4 files changed, 46 insertions, 6 deletions
diff --git a/app/models/concerns/error_format.rb b/app/models/concerns/error_format.rb new file mode 100644 index 000000000..158edb6e4 --- /dev/null +++ b/app/models/concerns/error_format.rb @@ -0,0 +1,29 @@ +# TODO: This module should be moved out of concerns to somewhere that makes +# more sense. + +module ErrorFormat extend self + + def details error_object + error_object.errors.messages.inject({}) do |hash, error| + hash.merge(partial(:detail, error_object, error).call) + end + end + + private + + def detail error_object, error + { + error.first => { + error: error.last.first, + value: error_object[error.first] + } + } + end + + def partial name, *partial_args + -> *lazy_args do + send(name, *(partial_args + lazy_args)) + end + end + +end diff --git a/app/models/import.rb b/app/models/import.rb index b34ca2b48..94cb025d6 100644 --- a/app/models/import.rb +++ b/app/models/import.rb @@ -5,6 +5,8 @@ class Import < ActiveRecord::Base belongs_to :parent, polymorphic: true + has_many :messages, class_name: "ImportMessage" + extend Enumerize enumerize :status, in: %i(new pending successful failed running aborted canceled) diff --git a/app/models/netex_import.rb b/app/models/netex_import.rb index 575cef816..1b3eaff18 100644 --- a/app/models/netex_import.rb +++ b/app/models/netex_import.rb @@ -1,15 +1,19 @@ require 'net/http' class NetexImport < Import - after_commit :launch_java_import + after_commit :launch_java_import, on: :create + validates_presence_of :parent def launch_java_import logger.warn "Call iev get #{Rails.configuration.iev_url}/boiv_iev/referentials/importer/new?id=#{id}" - begin - Net::HTTP.get(URI("#{Rails.configuration.iev_url}/boiv_iev/referentials/importer/new?id=#{id}")) - rescue Exception => e - logger.error "IEV server error : #{e.message}" - logger.error e.backtrace.inspect + + Thread.new do + begin + Net::HTTP.get(URI("#{Rails.configuration.iev_url}/boiv_iev/referentials/importer/new?id=#{id}")) + rescue Exception => e + logger.error "IEV server error : #{e.message}" + logger.error e.backtrace.inspect + end end end end diff --git a/app/models/workbench_import.rb b/app/models/workbench_import.rb index 9323bd4b5..27f53a44f 100644 --- a/app/models/workbench_import.rb +++ b/app/models/workbench_import.rb @@ -1,2 +1,7 @@ class WorkbenchImport < Import + after_commit :launch_worker, :on => :create + + def launch_worker + WorkbenchImportWorker.perform_async(id) + end end |
