diff options
| author | Robert | 2017-08-01 10:49:35 +0200 | 
|---|---|---|
| committer | Robert | 2017-08-01 22:10:23 +0200 | 
| commit | 0d03340ad3dc52b6f06c6643752ec5393103179e (patch) | |
| tree | 848a821a2afdff07f528cea2495586c760e7ed9e | |
| parent | 7b26da3da6c80712a62cab0c41a3c5ecbdd8e8a4 (diff) | |
| download | chouette-core-0d03340ad3dc52b6f06c6643752ec5393103179e.tar.bz2 | |
bup [amend me]
| -rw-r--r-- | app/controllers/api/v1/netex_imports_controller.rb | 32 | ||||
| -rw-r--r-- | app/views/api/v1/netex_imports/create.json.rabl | 4 | ||||
| -rw-r--r-- | spec/requests/api/v1/netex_import_spec.rb | 14 | 
3 files changed, 27 insertions, 23 deletions
| diff --git a/app/controllers/api/v1/netex_imports_controller.rb b/app/controllers/api/v1/netex_imports_controller.rb index e9b8242bd..b4d3caf16 100644 --- a/app/controllers/api/v1/netex_imports_controller.rb +++ b/app/controllers/api/v1/netex_imports_controller.rb @@ -4,27 +4,29 @@ module Api        def create          respond_to do | format | -          format.json do  -            workbench = Workbench.where(id: netex_import_params['workbench_id']).first -            if workbench -              @referential = Referential.new(name: netex_import_params['name'], organisation_id: workbench.organisation_id, workbench_id: workbench.id) -              @import = NetexImport.new(netex_import_params) -              if @import.valid? && @referential.valid? -                @import.save! -                @referential.save! -              else -                render json: {errors: @import.errors.to_h.merge( @referential.errors.to_h )}, status: 406 -              end -            else -              render json: {errors: {'workbench_id' => 'missing'}}, status: 406 -            end -          end +          format.json(&method(:create_models))          end        end        private +      def create_models +        require 'pry' +        binding.pry +        workbench = Workbench.where(id: netex_import_params['workbench_id']).first +        return render json: {errors: {'workbench_id' => 'missing'}}, status: 406 unless workbench + +        @referential = Referential.new(name: netex_import_params['name'], organisation_id: workbench.organisation_id, workbench_id: workbench.id) +        @netex_import = NetexImport.new(netex_import_params.merge(referential_id: @referential.id)) +        if @netex_import.valid? && @referential.valid? +          @netex_import.save! +          @referential.save! +        else +          render json: {errors: @netex_import.errors.to_h.merge( @referential.errors.to_h )}, status: 406 +        end +      end +        def netex_import_params          params            .require('netex_import') diff --git a/app/views/api/v1/netex_imports/create.json.rabl b/app/views/api/v1/netex_imports/create.json.rabl index 1361cdb80..f37703349 100644 --- a/app/views/api/v1/netex_imports/create.json.rabl +++ b/app/views/api/v1/netex_imports/create.json.rabl @@ -1,3 +1,3 @@ -object @import -attributes :id, :type +object @netex_import +attributes :id, :workbench_id, :referential_id diff --git a/spec/requests/api/v1/netex_import_spec.rb b/spec/requests/api/v1/netex_import_spec.rb index da42f8e19..e9b051043 100644 --- a/spec/requests/api/v1/netex_import_spec.rb +++ b/spec/requests/api/v1/netex_import_spec.rb @@ -30,10 +30,14 @@ RSpec.describe "NetexImport", type: :request do      context 'with correct credentials and correct request' do        let( :authorization ){ authorization_token_header( get_api_key.token ) } -      it 'succeeds' do +      it 'succeeds', :wip do          post_request.(netex_import: legal_attributes)          expect( response ).to be_success -        expect( json_response_body ).to eq({'id' => NetexImport.last.id, 'type' => 'NetexImport'}) +        expect( json_response_body ).to eq( +          'id'             => NetexImport.last.id, +          'referential_id' => Referential.last.id, +          'workbench_id'   => workbench.id +        )        end        it 'creates a NetexImport object in the DB' do @@ -50,18 +54,16 @@ RSpec.describe "NetexImport", type: :request do        end      end +      context 'with incorrect credentials and correct request' do        let( :authorization ){ authorization_token_header( "#{referential.id}-incorrect_token") } -      it 'does not succeed' do +      it 'does not create any DB object and does not succeed' do          legal_attributes # force object creation for correct to change behavior          expect{ post_request.(netex_import: legal_attributes) }.not_to change{Referential.count}          expect( response.status ).to eq(401)        end -      it 'does not create an Import object' do -        expect{ post_request.(netex_import: legal_attributes) }.not_to change{Import.count} -      end      end      context 'with correct credentials and incorrect request' do | 
