diff options
| author | Alban Peignier | 2017-08-27 15:41:23 +0200 |
|---|---|---|
| committer | Alban Peignier | 2017-08-27 15:41:23 +0200 |
| commit | 1e3367f54cad716537447d4dc1d244ce4463509d (patch) | |
| tree | 58f8e7d106853d7a64f74a183018fe41f14fb9e7 | |
| parent | 864eb6457cce3219b524ab022930fffc3cbd4bf6 (diff) | |
| download | chouette-core-1e3367f54cad716537447d4dc1d244ce4463509d.tar.bz2 | |
Create NetexImport even if Referential can be created. Add a ImportMessage and failed status in this case. Refs #4273
| -rw-r--r-- | app/controllers/api/v1/netex_imports_controller.rb | 30 | ||||
| -rw-r--r-- | lib/referential_metadata_kludge.rb | 7 |
2 files changed, 23 insertions, 14 deletions
diff --git a/app/controllers/api/v1/netex_imports_controller.rb b/app/controllers/api/v1/netex_imports_controller.rb index ba6f46047..d99fac7ed 100644 --- a/app/controllers/api/v1/netex_imports_controller.rb +++ b/app/controllers/api/v1/netex_imports_controller.rb @@ -28,27 +28,37 @@ module Api end def create_netex_import - @netex_import = NetexImport.new(netex_import_params.merge(referential_id: @new_referential.id)) + attributes = netex_import_params + if @new_referential.persisted? + attributes = attributes.merge referential_id: @new_referential.id, creator: "Webservice" + else + attributes = attributes.merge status: "failed" + end + + @netex_import = NetexImport.new attributes @netex_import.save! + + unless @netex_import.referential + @netex_import.messages.create criticity: :error, message_key: "cant_create_referential" + end rescue ActiveRecord::RecordInvalid render json: {errors: @netex_import.errors}, status: 406 finish_action! end def create_referential + # TODO: >>> REMOVE ME !!!! + metadata = ReferentialMetadataKludge.make_metadata_from_name! netex_import_params['name'] + # <<< REMOVE ME !!!! + @new_referential = Referential.new( name: netex_import_params['name'], organisation_id: @workbench.organisation_id, - workbench_id: @workbench.id) - @new_referential.save! - # TODO: >>> REMOVE ME !!!! - ReferentialMetadataKludge.make_metadata_from_name! netex_import_params['name'], referential_id: @new_referential.id - # <<< REMOVE ME !!!! - rescue ActiveRecord::RecordInvalid - # render json: {errors: @new_referential.errors}, status: 406 - render json: {errors: ErrorFormat.details(@new_referential)}, status: 406 - finish_action! + workbench_id: @workbench.id, + metadatas: [metadata] + ) + @new_referential.save end def netex_import_params diff --git a/lib/referential_metadata_kludge.rb b/lib/referential_metadata_kludge.rb index 597a00c3b..62318ce3c 100644 --- a/lib/referential_metadata_kludge.rb +++ b/lib/referential_metadata_kludge.rb @@ -1,14 +1,13 @@ module ReferentialMetadataKludge extend self - - def make_metadata_from_name!( name, referential_id: ) + + def make_metadata_from_name! name line_ids = Chouette::Line.where( objectid: ['C00108', 'C00109'].map do |id| "STIF:CODIFLIGNE:Line:#{id}" end ).pluck(:id) - ReferentialMetadata.create!( - referential_id: referential_id, + ReferentialMetadata.new( line_ids: line_ids, periodes: name_to_periods(name)) end |
