diff options
| author | Alban Peignier | 2017-12-12 21:24:24 +0100 |
|---|---|---|
| committer | Alban Peignier | 2017-12-12 21:26:57 +0100 |
| commit | ddf3e6c70b5523227c5fbabdf981e301fbf14e5d (patch) | |
| tree | c246b1afb015267adac51ecf44ffae19075294e7 /app/models | |
| parent | 4b341d795100a8a5417e4d822ae2afb3ed70da8a (diff) | |
| download | chouette-core-ddf3e6c70b5523227c5fbabdf981e301fbf14e5d.tar.bz2 | |
Move logic to ReferentialCloning. Improve specs. Refs #5283
Diffstat (limited to 'app/models')
| -rw-r--r-- | app/models/referential_cloning.rb | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/app/models/referential_cloning.rb b/app/models/referential_cloning.rb index 5bf283814..24117e6c8 100644 --- a/app/models/referential_cloning.rb +++ b/app/models/referential_cloning.rb @@ -2,14 +2,27 @@ class ReferentialCloning < ActiveRecord::Base include AASM belongs_to :source_referential, class_name: 'Referential' belongs_to :target_referential, class_name: 'Referential' - after_commit :perform_clone, :on => :create + after_commit :clone, on: :create - private - def perform_clone + def clone ReferentialCloningWorker.perform_async(id) - # ReferentialCloningWorker.new.perform(id) end + def clone! + run! + + AF83::SchemaCloner + .new(source_referential.slug, target_referential.slug) + .clone_schema + + successful! + rescue Exception => e + Rails.logger.error "Clone failed : #{e}" + failed! + end + + private + aasm column: :status do state :new, :initial => true state :pending |
