From 8eaa9249825f6eb6d667291fd9aa26bbde1ac7e3 Mon Sep 17 00:00:00 2001 From: Robert Date: Fri, 11 Aug 2017 09:57:55 +0200 Subject: initial --- app/controllers/api/v1/netex_imports_controller.rb | 3 +++ 1 file changed, 3 insertions(+) (limited to 'app/controllers/api') diff --git a/app/controllers/api/v1/netex_imports_controller.rb b/app/controllers/api/v1/netex_imports_controller.rb index 17eec2ef8..ba7777654 100644 --- a/app/controllers/api/v1/netex_imports_controller.rb +++ b/app/controllers/api/v1/netex_imports_controller.rb @@ -40,6 +40,9 @@ module Api 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 finish_action! -- cgit v1.2.3 From 61c4a303183284fc107325aeeef5ace7a3e68c0c Mon Sep 17 00:00:00 2001 From: Robert Date: Mon, 21 Aug 2017 20:24:50 +0200 Subject: Refs: #4273@3h; Debugging Java Integration (ZipService -> HTTPService -> Object Creation) - Created an ErrorFormat concern to see what went wrong in the HTTP call as so many things can go wrong due to: * Timeout Issues * Illegal database setup or cleaning before tests --- app/controllers/api/v1/netex_imports_controller.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'app/controllers/api') diff --git a/app/controllers/api/v1/netex_imports_controller.rb b/app/controllers/api/v1/netex_imports_controller.rb index ba7777654..7dc18a7be 100644 --- a/app/controllers/api/v1/netex_imports_controller.rb +++ b/app/controllers/api/v1/netex_imports_controller.rb @@ -44,7 +44,10 @@ module Api 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 + require 'pry' + binding.pry + # render json: {errors: @new_referential.errors}, status: 406 + render json: {errors: ErrorFormat.detailed(@new_referential)}, status: 406 finish_action! end -- cgit v1.2.3 From 038710b22ccf3dd2421ec8d07fae45ef05a47ada Mon Sep 17 00:00:00 2001 From: Robert Date: Tue, 22 Aug 2017 18:07:13 +0200 Subject: Refs: 4273@5h; Still debugging zip file upload inside post to Rails api; Retry removed (but not the deadcode yet) [amend me] --- app/controllers/api/v1/netex_imports_controller.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'app/controllers/api') diff --git a/app/controllers/api/v1/netex_imports_controller.rb b/app/controllers/api/v1/netex_imports_controller.rb index 7dc18a7be..fd28ba45a 100644 --- a/app/controllers/api/v1/netex_imports_controller.rb +++ b/app/controllers/api/v1/netex_imports_controller.rb @@ -44,10 +44,8 @@ module Api ReferentialMetadataKludge.make_metadata_from_name! netex_import_params['name'], referential_id: @new_referential.id # <<< REMOVE ME !!!! rescue ActiveRecord::RecordInvalid - require 'pry' - binding.pry # render json: {errors: @new_referential.errors}, status: 406 - render json: {errors: ErrorFormat.detailed(@new_referential)}, status: 406 + render json: {errors: ErrorFormat.details(@new_referential)}, status: 406 finish_action! end -- cgit v1.2.3 From 15ab19a081cc2272f6d1fff280a72060d02a35d4 Mon Sep 17 00:00:00 2001 From: Alban Peignier Date: Sun, 27 Aug 2017 14:17:23 +0200 Subject: Disable authentication in NetexImportsController for the moment. Refs #4273 --- app/controllers/api/v1/netex_imports_controller.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'app/controllers/api') diff --git a/app/controllers/api/v1/netex_imports_controller.rb b/app/controllers/api/v1/netex_imports_controller.rb index fd28ba45a..bf88448ba 100644 --- a/app/controllers/api/v1/netex_imports_controller.rb +++ b/app/controllers/api/v1/netex_imports_controller.rb @@ -3,6 +3,8 @@ module Api class NetexImportsController < ChouetteController include ControlFlow + skip_before_action :authenticate + def create respond_to do | format | format.json(&method(:create_models)) @@ -28,7 +30,7 @@ module Api def create_netex_import @netex_import = NetexImport.new(netex_import_params.merge(referential_id: @new_referential.id)) @netex_import.save! - rescue ActiveRecord::RecordInvalid + rescue ActiveRecord::RecordInvalid render json: {errors: @netex_import.errors}, status: 406 finish_action! end -- cgit v1.2.3 From 404f9f5200c78a2be22fbbb8dc728a25bc1c8f7b Mon Sep 17 00:00:00 2001 From: Alban Peignier Date: Sun, 27 Aug 2017 15:39:23 +0200 Subject: Make NetexImport#parent mandatory. Refs #4273 --- app/controllers/api/v1/netex_imports_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/controllers/api') diff --git a/app/controllers/api/v1/netex_imports_controller.rb b/app/controllers/api/v1/netex_imports_controller.rb index bf88448ba..ba6f46047 100644 --- a/app/controllers/api/v1/netex_imports_controller.rb +++ b/app/controllers/api/v1/netex_imports_controller.rb @@ -54,7 +54,7 @@ module Api def netex_import_params params .require('netex_import') - .permit(:file, :name, :workbench_id) + .permit(:file, :name, :workbench_id, :parent_id, :parent_type) end end end -- cgit v1.2.3 From 1e3367f54cad716537447d4dc1d244ce4463509d Mon Sep 17 00:00:00 2001 From: Alban Peignier Date: Sun, 27 Aug 2017 15:41:23 +0200 Subject: Create NetexImport even if Referential can be created. Add a ImportMessage and failed status in this case. Refs #4273 --- app/controllers/api/v1/netex_imports_controller.rb | 30 ++++++++++++++-------- 1 file changed, 20 insertions(+), 10 deletions(-) (limited to 'app/controllers/api') 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 -- cgit v1.2.3 From 4a9923079ed9d1658f7c6321ceab1d7e5c086037 Mon Sep 17 00:00:00 2001 From: Alban Peignier Date: Sun, 27 Aug 2017 16:35:42 +0200 Subject: Fixes API:v1:NetexImportsController specs. Refs #4273 --- app/controllers/api/v1/netex_imports_controller.rb | 1 + 1 file changed, 1 insertion(+) (limited to 'app/controllers/api') diff --git a/app/controllers/api/v1/netex_imports_controller.rb b/app/controllers/api/v1/netex_imports_controller.rb index d99fac7ed..212ba1302 100644 --- a/app/controllers/api/v1/netex_imports_controller.rb +++ b/app/controllers/api/v1/netex_imports_controller.rb @@ -39,6 +39,7 @@ module Api @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: "cant_create_referential" end rescue ActiveRecord::RecordInvalid -- cgit v1.2.3 From d79f84398849e9c32fdf41582d299dd914fb8452 Mon Sep 17 00:00:00 2001 From: Alban Peignier Date: Sun, 27 Aug 2017 23:50:35 +0200 Subject: Create STIF::NetexFile to read zip content and create ReferentialMetadata from real data. Refs #4273 --- app/controllers/api/v1/netex_imports_controller.rb | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) (limited to 'app/controllers/api') diff --git a/app/controllers/api/v1/netex_imports_controller.rb b/app/controllers/api/v1/netex_imports_controller.rb index 212ba1302..cb863b9fc 100644 --- a/app/controllers/api/v1/netex_imports_controller.rb +++ b/app/controllers/api/v1/netex_imports_controller.rb @@ -48,10 +48,6 @@ module Api 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'], @@ -62,6 +58,24 @@ module Api @new_referential.save end + def metadata + metadata = ReferentialMetadata.new + + if netex_import_params['file'] + netex_file = STIF::NetexFile.new(netex_import_params['file'].to_io) + frame = netex_file.frames.first + + if frame + metadata.periodes = frame.periods + + line_objectids = frame.line_refs.map { |ref| "STIF:CODIFLIGNE:Line:#{ref}" } + metadata.line_ids = @workbench.lines.where(objectid: line_objectids).pluck(:id) + end + end + + metadata + end + def netex_import_params params .require('netex_import') -- cgit v1.2.3