aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorZog2018-05-30 18:04:10 +0200
committerZog2018-05-30 18:04:10 +0200
commite400ea5d0d481420052caa080b9dbc4e9acf8406 (patch)
tree23ffa9e6fb1760ba72bd47c86b7827915644d480 /app
parent971b267958c3bf78abea332e0af4c46a23679b61 (diff)
downloadchouette-core-7231-rationalize-iev-api.tar.bz2
Refs #7231; Rationalize imports API7231-rationalize-iev-api
Diffstat (limited to 'app')
-rw-r--r--app/controllers/api/v1/internals/netex_imports_controller.rb34
-rw-r--r--app/controllers/api/v1/netex_imports_controller.rb47
2 files changed, 21 insertions, 60 deletions
diff --git a/app/controllers/api/v1/internals/netex_imports_controller.rb b/app/controllers/api/v1/internals/netex_imports_controller.rb
index c2b7b20cc..aaa009ad3 100644
--- a/app/controllers/api/v1/internals/netex_imports_controller.rb
+++ b/app/controllers/api/v1/internals/netex_imports_controller.rb
@@ -6,7 +6,13 @@ module Api
def create
respond_to do | format |
- format.json(&method(:create_models))
+ format.json do
+ import = create_models
+ render json: {
+ status: "ok",
+ message:"Import ##{import.id} created as child of #{import.parent_type} (id: #{import.parent_id})"
+ }
+ end
end
end
@@ -43,36 +49,38 @@ module Api
def create_models
find_workbench
- create_referential
- create_netex_import
+ referential = create_referential
+ create_netex_import referential
end
- def create_netex_import
+ def create_netex_import new_referential
attributes = netex_import_params.merge creator: "Webservice"
- attributes = attributes.merge referential_id: @new_referential.id
+ attributes = attributes.merge referential_id: new_referential.id
- @netex_import = Import::Netex.new attributes
- @netex_import.save!
+ netex_import = Import::Netex.new attributes
+ netex_import.save!
- unless @netex_import.referential
- Rails.logger.info "Can't create referential for import #{@netex_import.id}: #{@new_referential.inspect} #{@new_referential.metadatas.inspect} #{@new_referential.errors.full_messages}"
- @netex_import.messages.create criticity: :error, message_key: "referential_creation"
+ unless netex_import.referential
+ Rails.logger.info "Can't create referential for import #{netex_import.id}: #{new_referential.inspect} #{new_referential.metadatas.inspect} #{new_referential.errors.full_messages}"
+ netex_import.messages.create criticity: :error, message_key: "referential_creation"
end
+ netex_import
rescue ActiveRecord::RecordInvalid
- render json: {errors: @netex_import.errors}, status: 406
+ render json: {errors: netex_import.errors}, status: 406
finish_action!
end
def create_referential
- @new_referential =
+ new_referential =
Referential.new(
name: netex_import_params['name'],
organisation_id: @workbench.organisation_id,
workbench_id: @workbench.id,
metadatas: [metadata]
)
- @new_referential.save
+ new_referential.save
+ new_referential
end
def metadata
diff --git a/app/controllers/api/v1/netex_imports_controller.rb b/app/controllers/api/v1/netex_imports_controller.rb
deleted file mode 100644
index 2c9caf8fb..000000000
--- a/app/controllers/api/v1/netex_imports_controller.rb
+++ /dev/null
@@ -1,47 +0,0 @@
-module Api
- module V1
- class NetexImportsController < ActionController::Base
- include ControlFlow
-
-
- respond_to :json, :xml
- layout false
-
- def create
- respond_to do | format |
- format.json(&method(:create_models))
- end
- end
-
-
- private
-
- def find_workbench
- @workbench = Workbench.find(netex_import_params['workbench_id'])
- rescue ActiveRecord::RecordNotFound
- render json: {errors: {'workbench_id' => 'missing'}}, status: 406
- finish_action!
- end
-
- def create_models
- find_workbench
- create_netex_import
- end
-
- def create_netex_import
- attributes = netex_import_params.merge creator: "Webservice"
- @netex_import = Import::Netex.new attributes
- @netex_import.create_with_referential!
- rescue ActiveRecord::RecordInvalid
- render json: {errors: @netex_import.errors}, status: 406
- finish_action!
- end
-
- def netex_import_params
- params
- .require('netex_import')
- .permit(:file, :name, :workbench_id, :parent_id, :parent_type)
- end
- end
- end
-end