diff options
| author | Zog | 2018-05-30 18:04:10 +0200 | 
|---|---|---|
| committer | Zog | 2018-05-30 18:04:10 +0200 | 
| commit | e400ea5d0d481420052caa080b9dbc4e9acf8406 (patch) | |
| tree | 23ffa9e6fb1760ba72bd47c86b7827915644d480 /app | |
| parent | 971b267958c3bf78abea332e0af4c46a23679b61 (diff) | |
| download | chouette-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.rb | 34 | ||||
| -rw-r--r-- | app/controllers/api/v1/netex_imports_controller.rb | 47 | 
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 | 
