diff options
Diffstat (limited to 'app/models/export')
| -rw-r--r-- | app/models/export/base.rb | 46 | ||||
| -rw-r--r-- | app/models/export/netex.rb | 17 | ||||
| -rw-r--r-- | app/models/export/workbench.rb | 2 |
3 files changed, 65 insertions, 0 deletions
diff --git a/app/models/export/base.rb b/app/models/export/base.rb index 844c66d82..350edd215 100644 --- a/app/models/export/base.rb +++ b/app/models/export/base.rb @@ -1,6 +1,8 @@ class Export::Base < ActiveRecord::Base self.table_name = "exports" + validates :type, presence: true + def self.messages_class_name "Export::Message" end @@ -9,12 +11,56 @@ class Export::Base < ActiveRecord::Base "Export::Resource" end + def self.human_name + self.name.demodulize.humanize + end + + if Rails.env.development? + def self.force_load_descendants + path = Rails.root.join 'app/models/export' + Dir.chdir path do + Dir['**/*.rb'].each do |src| + next if src =~ /^base/ + klass_name = "Export::#{src[0..-4].classify}" + Rails.logger.info "Loading #{klass_name}" + begin + klass_name.constantize + rescue => e + Rails.logger.info "Failed: #{e.message}" + nil + end + end + end + end + end + + def self.option name, opts + store_accessor :options, name + if !!opts[:required] + validates name, presence: true + end + @options ||= {} + @options[name] = opts + end + + def self.options + @options + end + include IevInterfaces::Task def self.model_name ActiveModel::Name.new Export::Base, Export::Base, "Export" end + def self.user_visible_descendants + descendants.select &:user_visible? + end + + def self.user_visible? + true + end + private def initialize_fields diff --git a/app/models/export/netex.rb b/app/models/export/netex.rb index 858f09549..a5bdb63d2 100644 --- a/app/models/export/netex.rb +++ b/app/models/export/netex.rb @@ -1,2 +1,19 @@ class Export::Netex < Export::Base + after_commit :call_iev_callback, on: :create + + private + + def iev_callback_url + URI("#{Rails.configuration.iev_url}/boiv_iev/referentials/exporter/new?id=#{id}") + end + + def self.user_visible? + false + end + + def destroy_non_ready_referential + if referential && !referential.ready + referential.destroy + end + end end diff --git a/app/models/export/workbench.rb b/app/models/export/workbench.rb index a4b14cf55..9ec15f22f 100644 --- a/app/models/export/workbench.rb +++ b/app/models/export/workbench.rb @@ -1,6 +1,8 @@ class Export::Workbench < Export::Base after_commit :launch_worker, :on => :create + option :timelapse, required: true, type: :integer, default_value: 90 + def launch_worker # WorkbenchImportWorker.perform_async(id) end |
