aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert2017-08-01 10:49:35 +0200
committerRobert2017-08-01 22:10:23 +0200
commit0d03340ad3dc52b6f06c6643752ec5393103179e (patch)
tree848a821a2afdff07f528cea2495586c760e7ed9e
parent7b26da3da6c80712a62cab0c41a3c5ecbdd8e8a4 (diff)
downloadchouette-core-0d03340ad3dc52b6f06c6643752ec5393103179e.tar.bz2
bup [amend me]
-rw-r--r--app/controllers/api/v1/netex_imports_controller.rb32
-rw-r--r--app/views/api/v1/netex_imports/create.json.rabl4
-rw-r--r--spec/requests/api/v1/netex_import_spec.rb14
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