From bfa2d5748db45605f264a32e527a710d1effd311 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Mon, 15 Oct 2018 16:59:02 +0200 Subject: [PATCH 01/11] Properly name a support files folder --- spec/lib/api_carto/api_spec.rb | 10 +++++----- spec/lib/api_carto/cadastre/adapter_spec.rb | 2 +- .../api_carto/quartiers_prioritaires/adapter_spec.rb | 2 +- .../files/{geojson => api_carto}/request_cadastre.json | 0 .../files/{geojson => api_carto}/request_qp.json | 0 .../{geojson => api_carto}/response_cadastre.json | 0 .../files/{geojson => api_carto}/response_qp.json | 0 7 files changed, 7 insertions(+), 7 deletions(-) rename spec/support/files/{geojson => api_carto}/request_cadastre.json (100%) rename spec/support/files/{geojson => api_carto}/request_qp.json (100%) rename spec/support/files/{geojson => api_carto}/response_cadastre.json (100%) rename spec/support/files/{geojson => api_carto}/response_qp.json (100%) diff --git a/spec/lib/api_carto/api_spec.rb b/spec/lib/api_carto/api_spec.rb index ad3f11c95..f7cc8ed42 100644 --- a/spec/lib/api_carto/api_spec.rb +++ b/spec/lib/api_carto/api_spec.rb @@ -21,7 +21,7 @@ describe ApiCarto::API do end context 'when request return 500' do - let(:geojson) { File.read('spec/support/files/geojson/request_qp.json') } + let(:geojson) { File.read('spec/support/files/api_carto/request_qp.json') } let(:status) { 500 } let(:body) { 'toto' } @@ -31,7 +31,7 @@ describe ApiCarto::API do end context 'when geojson exist' do - let(:geojson) { File.read('spec/support/files/geojson/request_qp.json') } + let(:geojson) { File.read('spec/support/files/api_carto/request_qp.json') } let(:status) { 200 } let(:body) { 'toto' } @@ -40,7 +40,7 @@ describe ApiCarto::API do end context 'when geojson is at format JSON' do - let(:geojson) { JSON.parse(File.read('spec/support/files/geojson/request_qp.json')) } + let(:geojson) { JSON.parse(File.read('spec/support/files/api_carto/request_qp.json')) } it 'returns response body' do expect(subject).to eq(body) @@ -69,7 +69,7 @@ describe ApiCarto::API do end context 'when geojson exist' do - let(:geojson) { File.read('spec/support/files/geojson/request_cadastre.json') } + let(:geojson) { File.read('spec/support/files/api_carto/request_cadastre.json') } let(:status) { 200 } let(:body) { 'toto' } @@ -78,7 +78,7 @@ describe ApiCarto::API do end context 'when geojson is at format JSON' do - let(:geojson) { JSON.parse(File.read('spec/support/files/geojson/request_cadastre.json')) } + let(:geojson) { JSON.parse(File.read('spec/support/files/api_carto/request_cadastre.json')) } it 'returns response body' do expect(subject).to eq(body) diff --git a/spec/lib/api_carto/cadastre/adapter_spec.rb b/spec/lib/api_carto/cadastre/adapter_spec.rb index 6ceab2ca9..5f94e9f22 100644 --- a/spec/lib/api_carto/cadastre/adapter_spec.rb +++ b/spec/lib/api_carto/cadastre/adapter_spec.rb @@ -13,7 +13,7 @@ describe ApiCarto::Cadastre::Adapter do context 'coordinates are filled' do let(:coordinates) { '[[2.252728, 43.27151][2.323223, 32.835332]]' } let(:status) { 200 } - let(:body) { File.read('spec/support/files/geojson/response_cadastre.json') } + let(:body) { File.read('spec/support/files/api_carto/response_cadastre.json') } it { expect(subject).to be_a_instance_of(Array) } it { expect(subject.size).to eq(16) } diff --git a/spec/lib/api_carto/quartiers_prioritaires/adapter_spec.rb b/spec/lib/api_carto/quartiers_prioritaires/adapter_spec.rb index 471be4b2b..1ec983822 100644 --- a/spec/lib/api_carto/quartiers_prioritaires/adapter_spec.rb +++ b/spec/lib/api_carto/quartiers_prioritaires/adapter_spec.rb @@ -13,7 +13,7 @@ describe ApiCarto::QuartiersPrioritaires::Adapter do context 'coordinates are filled' do let(:coordinates) { '[[2.252728, 43.27151][2.323223, 32.835332]]' } let(:status) { 200 } - let(:body) { File.read('spec/support/files/geojson/response_qp.json') } + let(:body) { File.read('spec/support/files/api_carto/response_qp.json') } it { expect(subject).to be_a_instance_of(Array) } diff --git a/spec/support/files/geojson/request_cadastre.json b/spec/support/files/api_carto/request_cadastre.json similarity index 100% rename from spec/support/files/geojson/request_cadastre.json rename to spec/support/files/api_carto/request_cadastre.json diff --git a/spec/support/files/geojson/request_qp.json b/spec/support/files/api_carto/request_qp.json similarity index 100% rename from spec/support/files/geojson/request_qp.json rename to spec/support/files/api_carto/request_qp.json diff --git a/spec/support/files/geojson/response_cadastre.json b/spec/support/files/api_carto/response_cadastre.json similarity index 100% rename from spec/support/files/geojson/response_cadastre.json rename to spec/support/files/api_carto/response_cadastre.json diff --git a/spec/support/files/geojson/response_qp.json b/spec/support/files/api_carto/response_qp.json similarity index 100% rename from spec/support/files/geojson/response_qp.json rename to spec/support/files/api_carto/response_qp.json From 7ae5e8ce52c2d3de766adcceaa78c6746377657c Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Mon, 15 Oct 2018 17:00:59 +0200 Subject: [PATCH 02/11] Group API Adresse mock responses in a folder --- spec/lib/api_adresse/address_retriever_spec.rb | 4 ++-- .../search_no_results.json} | 0 .../search_results.json} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename spec/support/files/{ban_address_search_no_result.json => api_adresse/search_no_results.json} (100%) rename spec/support/files/{ban_address_search.json => api_adresse/search_results.json} (100%) diff --git a/spec/lib/api_adresse/address_retriever_spec.rb b/spec/lib/api_adresse/address_retriever_spec.rb index 80bb61a85..0aada2445 100644 --- a/spec/lib/api_adresse/address_retriever_spec.rb +++ b/spec/lib/api_adresse/address_retriever_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe ApiAdresse::AddressRetriever do describe '#list' do let(:request) { 'Paris' } - let(:response) { File.open('spec/support/files/ban_address_search.json') } + let(:response) { File.open('spec/support/files/api_adresse/search_results.json') } let(:status) { 200 } subject { described_class.new(request).list } @@ -19,7 +19,7 @@ describe ApiAdresse::AddressRetriever do end context 'when address return an empty list' do - let(:response) { File.open('spec/support/files/ban_address_search_no_result.json') } + let(:response) { File.open('spec/support/files/api_adresse/search_no_results.json') } it { expect(subject.size).to eq 0 } it { is_expected.to be_an_instance_of Array } diff --git a/spec/support/files/ban_address_search_no_result.json b/spec/support/files/api_adresse/search_no_results.json similarity index 100% rename from spec/support/files/ban_address_search_no_result.json rename to spec/support/files/api_adresse/search_no_results.json diff --git a/spec/support/files/ban_address_search.json b/spec/support/files/api_adresse/search_results.json similarity index 100% rename from spec/support/files/ban_address_search.json rename to spec/support/files/api_adresse/search_results.json From dc28e79ab4022a7f46c569f67bb7a64275bee70d Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Mon, 15 Oct 2018 17:04:51 +0200 Subject: [PATCH 03/11] Group API Entreprise mock responses in a folder --- spec/controllers/users/dossiers_controller_spec.rb | 8 ++++---- spec/features/users/complete_demande_spec.rb | 6 +++--- spec/features/users/dossier_creation_spec.rb | 6 +++--- spec/features/users/start_demande_spec.rb | 6 +++--- spec/lib/api_entreprise/api_spec.rb | 8 ++++---- spec/lib/api_entreprise/entreprise_adapter_spec.rb | 2 +- spec/lib/api_entreprise/etablissement_adapter_spec.rb | 2 +- spec/lib/api_entreprise/exercices_adapter_spec.rb | 2 +- spec/lib/api_entreprise/rna_adapter_spec.rb | 2 +- .../files/{rna.json => api_entreprise/associations.json} | 0 .../{entreprise.json => api_entreprise/entreprises.json} | 0 .../etablissements.json} | 0 spec/support/files/{ => api_entreprise}/exercices.json | 0 13 files changed, 21 insertions(+), 21 deletions(-) rename spec/support/files/{rna.json => api_entreprise/associations.json} (100%) rename spec/support/files/{entreprise.json => api_entreprise/entreprises.json} (100%) rename spec/support/files/{etablissement.json => api_entreprise/etablissements.json} (100%) rename spec/support/files/{ => api_entreprise}/exercices.json (100%) diff --git a/spec/controllers/users/dossiers_controller_spec.rb b/spec/controllers/users/dossiers_controller_spec.rb index 9e9ff9143..5d952d491 100644 --- a/spec/controllers/users/dossiers_controller_spec.rb +++ b/spec/controllers/users/dossiers_controller_spec.rb @@ -15,7 +15,7 @@ describe Users::DossiersController, type: :controller do let(:user) { create :user } let(:exercices_status) { 200 } - let(:exercices_body) { File.read('spec/support/files/exercices.json') } + let(:exercices_body) { File.read('spec/support/files/api_entreprise/exercices.json') } let(:siren) { '440117620' } let(:siret) { '44011762001530' } @@ -199,10 +199,10 @@ describe Users::DossiersController, type: :controller do .to_return(status: 404, body: 'fake body') stub_request(:get, /https:\/\/entreprise.api.gouv.fr\/v2\/etablissements\/#{siret}?.*token=/) - .to_return(status: status_entreprise_call, body: File.read('spec/support/files/etablissement.json')) + .to_return(status: status_entreprise_call, body: File.read('spec/support/files/api_entreprise/etablissements.json')) stub_request(:get, /https:\/\/entreprise.api.gouv.fr\/v2\/entreprises\/#{siren}?.*token=/) - .to_return(status: status_entreprise_call, body: File.read('spec/support/files/entreprise.json')) + .to_return(status: status_entreprise_call, body: File.read('spec/support/files/api_entreprise/entreprises.json')) stub_request(:get, /https:\/\/entreprise.api.gouv.fr\/v2\/exercices\/#{siret}?.*token=/) .to_return(status: exercices_status, body: exercices_body) @@ -280,7 +280,7 @@ describe Users::DossiersController, type: :controller do context 'when siren have rna informations' do let(:rna_status) { 200 } - let(:rna_body) { File.read('spec/support/files/rna.json') } + let(:rna_body) { File.read('spec/support/files/api_entreprise/associations.json') } it 'creates rna information for entreprise' do subject diff --git a/spec/features/users/complete_demande_spec.rb b/spec/features/users/complete_demande_spec.rb index 8277a35ab..2de695d97 100644 --- a/spec/features/users/complete_demande_spec.rb +++ b/spec/features/users/complete_demande_spec.rb @@ -31,12 +31,12 @@ feature 'user path for dossier creation' do context 'sets siret' do before do stub_request(:get, /https:\/\/entreprise.api.gouv.fr\/v2\/etablissements\/#{siret}?.*token=/) - .to_return(body: File.read('spec/support/files/etablissement.json', status: 200)) + .to_return(body: File.read('spec/support/files/api_entreprise/etablissements.json', status: 200)) stub_request(:get, /https:\/\/entreprise.api.gouv.fr\/v2\/entreprises\/#{siren}?.*token=/) - .to_return(status: 200, body: File.read('spec/support/files/entreprise.json')) + .to_return(status: 200, body: File.read('spec/support/files/api_entreprise/entreprises.json')) stub_request(:get, /https:\/\/entreprise.api.gouv.fr\/v2\/exercices\/#{siret}?.*token=/) - .to_return(status: 200, body: File.read('spec/support/files/exercices.json')) + .to_return(status: 200, body: File.read('spec/support/files/api_entreprise/exercices.json')) stub_request(:get, /https:\/\/entreprise.api.gouv.fr\/v2\/associations\/#{siret}?.*token=/) .to_return(status: 404, body: '') diff --git a/spec/features/users/dossier_creation_spec.rb b/spec/features/users/dossier_creation_spec.rb index 0784c57f2..8db07b62e 100644 --- a/spec/features/users/dossier_creation_spec.rb +++ b/spec/features/users/dossier_creation_spec.rb @@ -67,11 +67,11 @@ feature 'As a User I wanna create a dossier' do expect(page).to have_current_path(users_dossier_path(procedure_with_siret.dossiers.last.id.to_s)) stub_request(:get, /https:\/\/entreprise.api.gouv.fr\/v2\/etablissements\/#{siret}?.*token=/) - .to_return(status: 200, body: File.read('spec/support/files/etablissement.json')) + .to_return(status: 200, body: File.read('spec/support/files/api_entreprise/etablissements.json')) stub_request(:get, /https:\/\/entreprise.api.gouv.fr\/v2\/entreprises\/#{siren}?.*token=/) - .to_return(status: 200, body: File.read('spec/support/files/entreprise.json')) + .to_return(status: 200, body: File.read('spec/support/files/api_entreprise/entreprises.json')) stub_request(:get, /https:\/\/entreprise.api.gouv.fr\/v2\/exercices\/#{siret}?.*token=/) - .to_return(status: 200, body: File.read('spec/support/files/exercices.json')) + .to_return(status: 200, body: File.read('spec/support/files/api_entreprise/exercices.json')) stub_request(:get, /https:\/\/entreprise.api.gouv.fr\/v2\/associations\/#{siret}?.*token=/) .to_return(status: 404, body: '') diff --git a/spec/features/users/start_demande_spec.rb b/spec/features/users/start_demande_spec.rb index 40aac6547..ad7937318 100644 --- a/spec/features/users/start_demande_spec.rb +++ b/spec/features/users/start_demande_spec.rb @@ -27,11 +27,11 @@ feature 'user arrive on siret page' do context 'when enter a siret', js: true do before do stub_request(:get, /https:\/\/entreprise.api.gouv.fr\/v2\/etablissements\/#{siret}?.*token=/) - .to_return(status: 200, body: File.read('spec/support/files/etablissement.json')) + .to_return(status: 200, body: File.read('spec/support/files/api_entreprise/etablissements.json')) stub_request(:get, /https:\/\/entreprise.api.gouv.fr\/v2\/entreprises\/#{siren}?.*token=/) - .to_return(status: 200, body: File.read('spec/support/files/entreprise.json')) + .to_return(status: 200, body: File.read('spec/support/files/api_entreprise/entreprises.json')) stub_request(:get, /https:\/\/entreprise.api.gouv.fr\/v2\/exercices\/#{siret}?.*token=/) - .to_return(status: 200, body: File.read('spec/support/files/exercices.json')) + .to_return(status: 200, body: File.read('spec/support/files/api_entreprise/exercices.json')) stub_request(:get, /https:\/\/entreprise.api.gouv.fr\/v2\/associations\/#{siret}?.*token=/) .to_return(status: 404, body: '') diff --git a/spec/lib/api_entreprise/api_spec.rb b/spec/lib/api_entreprise/api_spec.rb index 070568dba..2dffe6ae6 100644 --- a/spec/lib/api_entreprise/api_spec.rb +++ b/spec/lib/api_entreprise/api_spec.rb @@ -20,7 +20,7 @@ describe ApiEntreprise::API do context 'when siret exist' do let(:siren) { '418166096' } let(:status) { 200 } - let(:body) { File.read('spec/support/files/entreprise.json') } + let(:body) { File.read('spec/support/files/api_entreprise/entreprises.json') } it 'returns response body' do expect(subject).to eq(JSON.parse(body, symbolize_names: true)) @@ -48,7 +48,7 @@ describe ApiEntreprise::API do context 'when siret exists' do let(:siret) { '41816609600051' } let(:status) { 200 } - let(:body) { File.read('spec/support/files/etablissement.json') } + let(:body) { File.read('spec/support/files/api_entreprise/etablissements.json') } it 'returns body' do expect(subject).to eq(JSON.parse(body, symbolize_names: true)) @@ -79,7 +79,7 @@ describe ApiEntreprise::API do let(:siret) { '41816609600051' } let(:status) { 200 } - let(:body) { File.read('spec/support/files/exercices.json') } + let(:body) { File.read('spec/support/files/api_entreprise/exercices.json') } it 'raises RestClient::Unauthorized' do expect(subject).to eq(JSON.parse(body, symbolize_names: true)) @@ -108,7 +108,7 @@ describe ApiEntreprise::API do context 'when siren exists' do let(:siren) { '418166096' } let(:status) { 200 } - let(:body) { File.read('spec/support/files/rna.json') } + let(:body) { File.read('spec/support/files/api_entreprise/associations.json') } it { expect(subject).to eq(JSON.parse(body, symbolize_names: true)) } end diff --git a/spec/lib/api_entreprise/entreprise_adapter_spec.rb b/spec/lib/api_entreprise/entreprise_adapter_spec.rb index 52b70e490..75328fe9c 100644 --- a/spec/lib/api_entreprise/entreprise_adapter_spec.rb +++ b/spec/lib/api_entreprise/entreprise_adapter_spec.rb @@ -8,7 +8,7 @@ describe ApiEntreprise::EntrepriseAdapter do before do stub_request(:get, /https:\/\/entreprise.api.gouv.fr\/v2\/entreprises\/#{siren}?.*token=/) - .to_return(body: File.read('spec/support/files/entreprise.json', status: 200)) + .to_return(body: File.read('spec/support/files/api_entreprise/entreprises.json', status: 200)) end it '#to_params class est une Hash ?' do diff --git a/spec/lib/api_entreprise/etablissement_adapter_spec.rb b/spec/lib/api_entreprise/etablissement_adapter_spec.rb index 31f21414a..e2224bdbe 100644 --- a/spec/lib/api_entreprise/etablissement_adapter_spec.rb +++ b/spec/lib/api_entreprise/etablissement_adapter_spec.rb @@ -9,7 +9,7 @@ describe ApiEntreprise::EtablissementAdapter do before do stub_request(:get, /https:\/\/entreprise.api.gouv.fr\/v2\/etablissements\/#{siret}?.*token=/) - .to_return(body: File.read('spec/support/files/etablissement.json', status: 200)) + .to_return(body: File.read('spec/support/files/api_entreprise/etablissements.json', status: 200)) end it '#to_params class est une Hash ?' do diff --git a/spec/lib/api_entreprise/exercices_adapter_spec.rb b/spec/lib/api_entreprise/exercices_adapter_spec.rb index bdfe2c7da..36c5cbb8b 100644 --- a/spec/lib/api_entreprise/exercices_adapter_spec.rb +++ b/spec/lib/api_entreprise/exercices_adapter_spec.rb @@ -7,7 +7,7 @@ describe ApiEntreprise::ExercicesAdapter do before do stub_request(:get, /https:\/\/entreprise.api.gouv.fr\/v2\/exercices\/.*token=/) - .to_return(body: File.read('spec/support/files/exercices.json', status: 200)) + .to_return(body: File.read('spec/support/files/api_entreprise/exercices.json', status: 200)) end it '#to_params class est un Hash ?' do diff --git a/spec/lib/api_entreprise/rna_adapter_spec.rb b/spec/lib/api_entreprise/rna_adapter_spec.rb index b567c47ec..2b246d54f 100644 --- a/spec/lib/api_entreprise/rna_adapter_spec.rb +++ b/spec/lib/api_entreprise/rna_adapter_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe ApiEntreprise::RNAAdapter do let(:siret) { '50480511000013' } let(:procedure_id) { 22 } - let(:body) { File.read('spec/support/files/rna.json') } + let(:body) { File.read('spec/support/files/api_entreprise/associations.json') } let(:status) { 200 } let(:adapter) { described_class.new(siret, procedure_id) } diff --git a/spec/support/files/rna.json b/spec/support/files/api_entreprise/associations.json similarity index 100% rename from spec/support/files/rna.json rename to spec/support/files/api_entreprise/associations.json diff --git a/spec/support/files/entreprise.json b/spec/support/files/api_entreprise/entreprises.json similarity index 100% rename from spec/support/files/entreprise.json rename to spec/support/files/api_entreprise/entreprises.json diff --git a/spec/support/files/etablissement.json b/spec/support/files/api_entreprise/etablissements.json similarity index 100% rename from spec/support/files/etablissement.json rename to spec/support/files/api_entreprise/etablissements.json diff --git a/spec/support/files/exercices.json b/spec/support/files/api_entreprise/exercices.json similarity index 100% rename from spec/support/files/exercices.json rename to spec/support/files/api_entreprise/exercices.json From 918a91a9852e4e4aa85b71c22865676a498bdd6a Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Mon, 15 Oct 2018 17:15:42 +0200 Subject: [PATCH 04/11] =?UTF-8?q?ApiCarto::Cadastre::Adapter=20=E2=86=92?= =?UTF-8?q?=20ApiCarto::CadastreAdapter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/lib/api_carto/{cadastre/adapter.rb => cadastre_adapter.rb} | 2 +- app/services/module_api_carto_service.rb | 2 +- spec/controllers/users/carte_controller_shared_example.rb | 2 +- .../{cadastre/adapter_spec.rb => cadastre_adapter_spec.rb} | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) rename app/lib/api_carto/{cadastre/adapter.rb => cadastre_adapter.rb} (94%) rename spec/lib/api_carto/{cadastre/adapter_spec.rb => cadastre_adapter_spec.rb} (98%) diff --git a/app/lib/api_carto/cadastre/adapter.rb b/app/lib/api_carto/cadastre_adapter.rb similarity index 94% rename from app/lib/api_carto/cadastre/adapter.rb rename to app/lib/api_carto/cadastre_adapter.rb index 2fa40f4bc..a1d396502 100644 --- a/app/lib/api_carto/cadastre/adapter.rb +++ b/app/lib/api_carto/cadastre_adapter.rb @@ -1,4 +1,4 @@ -class ApiCarto::Cadastre::Adapter +class ApiCarto::CadastreAdapter def initialize(coordinates) @coordinates = GeojsonService.to_json_polygon_for_cadastre(coordinates) end diff --git a/app/services/module_api_carto_service.rb b/app/services/module_api_carto_service.rb index d3d920e3b..0cc10ed59 100644 --- a/app/services/module_api_carto_service.rb +++ b/app/services/module_api_carto_service.rb @@ -33,7 +33,7 @@ class ModuleApiCartoService def self.generate_cadastre(coordinates) coordinates.flat_map do |coordinate| - ApiCarto::Cadastre::Adapter.new( + ApiCarto::CadastreAdapter.new( coordinate.map { |element| [element['lng'], element['lat']] } ).results end diff --git a/spec/controllers/users/carte_controller_shared_example.rb b/spec/controllers/users/carte_controller_shared_example.rb index cfdf9e0e7..31506cd97 100644 --- a/spec/controllers/users/carte_controller_shared_example.rb +++ b/spec/controllers/users/carte_controller_shared_example.rb @@ -160,7 +160,7 @@ shared_examples 'carte_controller_spec' do let(:module_api_carto) { create(:module_api_carto, :with_cadastre) } before do - allow_any_instance_of(ApiCarto::Cadastre::Adapter) + allow_any_instance_of(ApiCarto::CadastreAdapter) .to receive(:results) .and_return([{ :surface_intersection => "0.0006", :surface_parcelle => 11252.692583090324, :numero => "0013", :feuille => 1, :section => "CD", :code_dep => "30", :nom_com => "Le Grau-du-Roi", :code_com => "133", :code_arr => "000", :geometry => { :type => "MultiPolygon", :coordinates => [[[[4.134084, 43.5209193], [4.1346615, 43.5212035], [4.1346984, 43.521189], [4.135096, 43.5213848], [4.1350839, 43.5214122], [4.1352697, 43.521505], [4.1356278, 43.5211065], [4.1357402, 43.5207188], [4.1350935, 43.5203936], [4.135002, 43.5204366], [4.1346051, 43.5202412], [4.134584, 43.5202472], [4.1345572, 43.5202551], [4.134356, 43.5203137], [4.1342488, 43.5203448], [4.134084, 43.5209193]]]] } }]) diff --git a/spec/lib/api_carto/cadastre/adapter_spec.rb b/spec/lib/api_carto/cadastre_adapter_spec.rb similarity index 98% rename from spec/lib/api_carto/cadastre/adapter_spec.rb rename to spec/lib/api_carto/cadastre_adapter_spec.rb index 5f94e9f22..2dba88a82 100644 --- a/spec/lib/api_carto/cadastre/adapter_spec.rb +++ b/spec/lib/api_carto/cadastre_adapter_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe ApiCarto::Cadastre::Adapter do +describe ApiCarto::CadastreAdapter do subject { described_class.new(coordinates).results } before do From 5db4de6c5340d7f8ab7080828e1a64fbd204684b Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Mon, 15 Oct 2018 17:16:55 +0200 Subject: [PATCH 05/11] =?UTF-8?q?QuartiersPrioritaires::Adapter=20?= =?UTF-8?q?=E2=86=92=20QuartiersPrioritairesAdapter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter.rb => quartiers_prioritaires_adapter.rb} | 2 +- app/services/module_api_carto_service.rb | 2 +- spec/controllers/users/carte_controller_shared_example.rb | 4 ++-- ...adapter_spec.rb => quartiers_prioritaires_adapter_spec.rb} | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) rename app/lib/api_carto/{quartiers_prioritaires/adapter.rb => quartiers_prioritaires_adapter.rb} (88%) rename spec/lib/api_carto/{quartiers_prioritaires/adapter_spec.rb => quartiers_prioritaires_adapter_spec.rb} (95%) diff --git a/app/lib/api_carto/quartiers_prioritaires/adapter.rb b/app/lib/api_carto/quartiers_prioritaires_adapter.rb similarity index 88% rename from app/lib/api_carto/quartiers_prioritaires/adapter.rb rename to app/lib/api_carto/quartiers_prioritaires_adapter.rb index 9d5e62ee1..80de6b926 100644 --- a/app/lib/api_carto/quartiers_prioritaires/adapter.rb +++ b/app/lib/api_carto/quartiers_prioritaires_adapter.rb @@ -1,4 +1,4 @@ -class ApiCarto::QuartiersPrioritaires::Adapter +class ApiCarto::QuartiersPrioritairesAdapter def initialize(coordinates) @coordinates = GeojsonService.to_json_polygon_for_qp(coordinates) end diff --git a/app/services/module_api_carto_service.rb b/app/services/module_api_carto_service.rb index 0cc10ed59..2505f60b3 100644 --- a/app/services/module_api_carto_service.rb +++ b/app/services/module_api_carto_service.rb @@ -25,7 +25,7 @@ class ModuleApiCartoService def self.generate_qp(coordinates) coordinates.flat_map do |coordinate| - ApiCarto::QuartiersPrioritaires::Adapter.new( + ApiCarto::QuartiersPrioritairesAdapter.new( coordinate.map { |element| [element['lng'], element['lat']] } ).results end diff --git a/spec/controllers/users/carte_controller_shared_example.rb b/spec/controllers/users/carte_controller_shared_example.rb index 31506cd97..22a2ceb5a 100644 --- a/spec/controllers/users/carte_controller_shared_example.rb +++ b/spec/controllers/users/carte_controller_shared_example.rb @@ -113,7 +113,7 @@ shared_examples 'carte_controller_spec' do let(:module_api_carto) { create(:module_api_carto, :with_quartiers_prioritaires) } before do - allow_any_instance_of(ApiCarto::QuartiersPrioritaires::Adapter) + allow_any_instance_of(ApiCarto::QuartiersPrioritairesAdapter) .to receive(:results) .and_return([{ :code => "QPCODE1234", :nom => "QP de test", :commune => "Paris", :geometry => { :type => "MultiPolygon", :coordinates => [[[[2.38715792094576, 48.8723062632126], [2.38724851642619, 48.8721392348061]]]] } }]) @@ -215,7 +215,7 @@ shared_examples 'carte_controller_spec' do render_views before do - allow_any_instance_of(ApiCarto::QuartiersPrioritaires::Adapter) + allow_any_instance_of(ApiCarto::QuartiersPrioritairesAdapter) .to receive(:results) .and_return([{ :code => "QPCODE1234", :geometry => { :type => "MultiPolygon", :coordinates => [[[[2.38715792094576, 48.8723062632126], [2.38724851642619, 48.8721392348061]]]] } }]) diff --git a/spec/lib/api_carto/quartiers_prioritaires/adapter_spec.rb b/spec/lib/api_carto/quartiers_prioritaires_adapter_spec.rb similarity index 95% rename from spec/lib/api_carto/quartiers_prioritaires/adapter_spec.rb rename to spec/lib/api_carto/quartiers_prioritaires_adapter_spec.rb index 1ec983822..24ffcc5e8 100644 --- a/spec/lib/api_carto/quartiers_prioritaires/adapter_spec.rb +++ b/spec/lib/api_carto/quartiers_prioritaires_adapter_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe ApiCarto::QuartiersPrioritaires::Adapter do +describe ApiCarto::QuartiersPrioritairesAdapter do subject { described_class.new(coordinates).results } before do From a841a517df1b5f6cbd49dec2ab588f98b63734e3 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Mon, 15 Oct 2018 17:35:44 +0200 Subject: [PATCH 06/11] =?UTF-8?q?ApiAdresse::Driver=20=E2=86=92=20ApiAdres?= =?UTF-8?q?se::API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/lib/api_adresse/address_retriever.rb | 10 +++++----- app/lib/api_adresse/api.rb | 16 ++++++++++++++++ app/lib/api_adresse/driver.rb | 18 ------------------ app/lib/api_adresse/point_retriever.rb | 10 +++++----- spec/lib/api_adresse/geocodeur_spec.rb | 2 +- 5 files changed, 27 insertions(+), 29 deletions(-) create mode 100644 app/lib/api_adresse/api.rb delete mode 100644 app/lib/api_adresse/driver.rb diff --git a/app/lib/api_adresse/address_retriever.rb b/app/lib/api_adresse/address_retriever.rb index 8bbd9ab38..49e6216f4 100644 --- a/app/lib/api_adresse/address_retriever.rb +++ b/app/lib/api_adresse/address_retriever.rb @@ -7,17 +7,17 @@ module ApiAdresse end def list - @list ||= convert_driver_result_to_full_address + @list ||= convert_api_result_to_full_address end private - def driver - @driver ||= ApiAdresse::Driver.new(@address, 5) + def api + @api ||= ApiAdresse::API.new(@address, 5) end - def convert_driver_result_to_full_address - result = JSON.parse(driver.call) + def convert_api_result_to_full_address + result = JSON.parse(api.call) if result['features'].empty? Rails.logger.error "unable to find location for address #{@address}" diff --git a/app/lib/api_adresse/api.rb b/app/lib/api_adresse/api.rb new file mode 100644 index 000000000..a8b38ab72 --- /dev/null +++ b/app/lib/api_adresse/api.rb @@ -0,0 +1,16 @@ +class ApiAdresse::API + # input : string (address) + # output : json + def initialize(address, limit = 1) + @address = address + @limit = limit + end + + def call + search_url = [API_ADRESSE_URL, "search"].join("/") + + RestClient.get(search_url, params: { q: @address, limit: @limit }) + rescue RestClient::ServiceUnavailable + nil + end +end diff --git a/app/lib/api_adresse/driver.rb b/app/lib/api_adresse/driver.rb deleted file mode 100644 index fadcfb2af..000000000 --- a/app/lib/api_adresse/driver.rb +++ /dev/null @@ -1,18 +0,0 @@ -module ApiAdresse - # input : string (address) - # output : json - class Driver - def initialize(address, limit = 1) - @address = address - @limit = limit - end - - def call - search_url = [API_ADRESSE_URL, "search"].join("/") - - RestClient.get(search_url, params: { q: @address, limit: @limit }) - rescue RestClient::ServiceUnavailable - nil - end - end -end diff --git a/app/lib/api_adresse/point_retriever.rb b/app/lib/api_adresse/point_retriever.rb index a788f70ab..b31eb37e0 100644 --- a/app/lib/api_adresse/point_retriever.rb +++ b/app/lib/api_adresse/point_retriever.rb @@ -7,17 +7,17 @@ module ApiAdresse end def point - @point ||= convert_driver_result_to_point + @point ||= convert_api_result_to_point end private - def driver - @driver ||= ApiAdresse::Driver.new(@address) + def api + @api ||= ApiAdresse::API.new(@address) end - def convert_driver_result_to_point - result = JSON.parse(driver.call) + def convert_api_result_to_point + result = JSON.parse(api.call) if result['features'].empty? Rails.logger.error "unable to find location for address #{@address}" return nil diff --git a/spec/lib/api_adresse/geocodeur_spec.rb b/spec/lib/api_adresse/geocodeur_spec.rb index 39a2f724a..d590a36dd 100644 --- a/spec/lib/api_adresse/geocodeur_spec.rb +++ b/spec/lib/api_adresse/geocodeur_spec.rb @@ -8,7 +8,7 @@ describe ApiAdresse::Geocodeur do end context 'when RestClient::Exception' do before do - allow_any_instance_of(ApiAdresse::Driver).to receive(:call).and_raise(RestClient::Exception) + allow_any_instance_of(ApiAdresse::API).to receive(:call).and_raise(RestClient::Exception) end it 'return nil' do expect(described_class.convert_adresse_to_point(address)).to be_nil From 8b4ba42f158aa9ea8912f3b96ab47cefc6922bd4 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Mon, 15 Oct 2018 18:23:32 +0200 Subject: [PATCH 07/11] Simplify ApiAdresse --- app/lib/api_adresse/address_retriever.rb | 6 +----- app/lib/api_adresse/api.rb | 9 ++------- app/lib/api_adresse/point_retriever.rb | 6 +----- spec/lib/api_adresse/geocodeur_spec.rb | 2 +- 4 files changed, 5 insertions(+), 18 deletions(-) diff --git a/app/lib/api_adresse/address_retriever.rb b/app/lib/api_adresse/address_retriever.rb index 49e6216f4..f1c8628a7 100644 --- a/app/lib/api_adresse/address_retriever.rb +++ b/app/lib/api_adresse/address_retriever.rb @@ -12,12 +12,8 @@ module ApiAdresse private - def api - @api ||= ApiAdresse::API.new(@address, 5) - end - def convert_api_result_to_full_address - result = JSON.parse(api.call) + result = JSON.parse(ApiAdresse::API.call(@address, 5)) if result['features'].empty? Rails.logger.error "unable to find location for address #{@address}" diff --git a/app/lib/api_adresse/api.rb b/app/lib/api_adresse/api.rb index a8b38ab72..a00b2331c 100644 --- a/app/lib/api_adresse/api.rb +++ b/app/lib/api_adresse/api.rb @@ -1,15 +1,10 @@ class ApiAdresse::API # input : string (address) # output : json - def initialize(address, limit = 1) - @address = address - @limit = limit - end - - def call + def self.call(address, limit = 1) search_url = [API_ADRESSE_URL, "search"].join("/") - RestClient.get(search_url, params: { q: @address, limit: @limit }) + RestClient.get(search_url, params: { q: address, limit: limit }) rescue RestClient::ServiceUnavailable nil end diff --git a/app/lib/api_adresse/point_retriever.rb b/app/lib/api_adresse/point_retriever.rb index b31eb37e0..1efe22f47 100644 --- a/app/lib/api_adresse/point_retriever.rb +++ b/app/lib/api_adresse/point_retriever.rb @@ -12,12 +12,8 @@ module ApiAdresse private - def api - @api ||= ApiAdresse::API.new(@address) - end - def convert_api_result_to_point - result = JSON.parse(api.call) + result = JSON.parse(ApiAdresse::API.call(@address)) if result['features'].empty? Rails.logger.error "unable to find location for address #{@address}" return nil diff --git a/spec/lib/api_adresse/geocodeur_spec.rb b/spec/lib/api_adresse/geocodeur_spec.rb index d590a36dd..eba4d9e6a 100644 --- a/spec/lib/api_adresse/geocodeur_spec.rb +++ b/spec/lib/api_adresse/geocodeur_spec.rb @@ -8,7 +8,7 @@ describe ApiAdresse::Geocodeur do end context 'when RestClient::Exception' do before do - allow_any_instance_of(ApiAdresse::API).to receive(:call).and_raise(RestClient::Exception) + allow(ApiAdresse::API).to receive(:call).and_raise(RestClient::Exception) end it 'return nil' do expect(described_class.convert_adresse_to_point(address)).to be_nil From 831cd56b954bb3d489ac2f80e1d516db5c8dfb52 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Mon, 15 Oct 2018 17:24:55 +0200 Subject: [PATCH 08/11] Remove comments in ApiAdresse --- app/lib/api_adresse/address_retriever.rb | 2 -- app/lib/api_adresse/api.rb | 2 -- app/lib/api_adresse/geocodeur.rb | 1 - app/lib/api_adresse/point_retriever.rb | 2 -- 4 files changed, 7 deletions(-) diff --git a/app/lib/api_adresse/address_retriever.rb b/app/lib/api_adresse/address_retriever.rb index f1c8628a7..4a1fc2640 100644 --- a/app/lib/api_adresse/address_retriever.rb +++ b/app/lib/api_adresse/address_retriever.rb @@ -1,6 +1,4 @@ module ApiAdresse - # input : address - # output : Array List label address class AddressRetriever def initialize(address) @address = address diff --git a/app/lib/api_adresse/api.rb b/app/lib/api_adresse/api.rb index a00b2331c..12cc8fdde 100644 --- a/app/lib/api_adresse/api.rb +++ b/app/lib/api_adresse/api.rb @@ -1,6 +1,4 @@ class ApiAdresse::API - # input : string (address) - # output : json def self.call(address, limit = 1) search_url = [API_ADRESSE_URL, "search"].join("/") diff --git a/app/lib/api_adresse/geocodeur.rb b/app/lib/api_adresse/geocodeur.rb index 37953ad91..1d471fd76 100644 --- a/app/lib/api_adresse/geocodeur.rb +++ b/app/lib/api_adresse/geocodeur.rb @@ -1,5 +1,4 @@ module ApiAdresse - # this class take a string in input and return a point class Geocodeur def self.convert_adresse_to_point(address) ApiAdresse::PointRetriever.new(address).point diff --git a/app/lib/api_adresse/point_retriever.rb b/app/lib/api_adresse/point_retriever.rb index 1efe22f47..837d9c3ab 100644 --- a/app/lib/api_adresse/point_retriever.rb +++ b/app/lib/api_adresse/point_retriever.rb @@ -1,6 +1,4 @@ module ApiAdresse - # input : address - # output : point RGeo::Cartesian::PointImpl class PointRetriever def initialize(address) @address = address From c654122e90d2a6f5a22d267d14dfc58d35f734c2 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Mon, 15 Oct 2018 17:26:06 +0200 Subject: [PATCH 09/11] Unify scoping in app/lib --- app/lib/api_adresse/address_retriever.rb | 44 +++++++++++------------- app/lib/api_adresse/geocodeur.rb | 14 ++++---- app/lib/api_adresse/point_retriever.rb | 30 ++++++++-------- app/lib/api_geo/driver.rb | 36 +++++++++---------- 4 files changed, 58 insertions(+), 66 deletions(-) diff --git a/app/lib/api_adresse/address_retriever.rb b/app/lib/api_adresse/address_retriever.rb index 4a1fc2640..735fe5bad 100644 --- a/app/lib/api_adresse/address_retriever.rb +++ b/app/lib/api_adresse/address_retriever.rb @@ -1,28 +1,26 @@ -module ApiAdresse - class AddressRetriever - def initialize(address) - @address = address +class ApiAdresse::AddressRetriever + def initialize(address) + @address = address + end + + def list + @list ||= convert_api_result_to_full_address + end + + private + + def convert_api_result_to_full_address + result = JSON.parse(ApiAdresse::API.call(@address, 5)) + + if result['features'].empty? + Rails.logger.error "unable to find location for address #{@address}" + return [] end - def list - @list ||= convert_api_result_to_full_address - end - - private - - def convert_api_result_to_full_address - result = JSON.parse(ApiAdresse::API.call(@address, 5)) - - if result['features'].empty? - Rails.logger.error "unable to find location for address #{@address}" - return [] - end - - result['features'].map do |feature| - feature['properties']['label'] - end - rescue TypeError, JSON::ParserError - [] + result['features'].map do |feature| + feature['properties']['label'] end + rescue TypeError, JSON::ParserError + [] end end diff --git a/app/lib/api_adresse/geocodeur.rb b/app/lib/api_adresse/geocodeur.rb index 1d471fd76..8c252998d 100644 --- a/app/lib/api_adresse/geocodeur.rb +++ b/app/lib/api_adresse/geocodeur.rb @@ -1,10 +1,8 @@ -module ApiAdresse - class Geocodeur - def self.convert_adresse_to_point(address) - ApiAdresse::PointRetriever.new(address).point - rescue RestClient::Exception, JSON::ParserError => e - Rails.logger.error(e.message) - nil - end +class ApiAdresse::Geocodeur + def self.convert_adresse_to_point(address) + ApiAdresse::PointRetriever.new(address).point + rescue RestClient::Exception, JSON::ParserError => e + Rails.logger.error(e.message) + nil end end diff --git a/app/lib/api_adresse/point_retriever.rb b/app/lib/api_adresse/point_retriever.rb index 837d9c3ab..3a4b5ee9f 100644 --- a/app/lib/api_adresse/point_retriever.rb +++ b/app/lib/api_adresse/point_retriever.rb @@ -1,22 +1,20 @@ -module ApiAdresse - class PointRetriever - def initialize(address) - @address = address - end +class ApiAdresse::PointRetriever + def initialize(address) + @address = address + end - def point - @point ||= convert_api_result_to_point - end + def point + @point ||= convert_api_result_to_point + end - private + private - def convert_api_result_to_point - result = JSON.parse(ApiAdresse::API.call(@address)) - if result['features'].empty? - Rails.logger.error "unable to find location for address #{@address}" - return nil - end - RGeo::GeoJSON.decode(result['features'][0]['geometry'], json_parser: :json) + def convert_api_result_to_point + result = JSON.parse(ApiAdresse::API.call(@address)) + if result['features'].empty? + Rails.logger.error "unable to find location for address #{@address}" + return nil end + RGeo::GeoJSON.decode(result['features'][0]['geometry'], json_parser: :json) end end diff --git a/app/lib/api_geo/driver.rb b/app/lib/api_geo/driver.rb index 9f5d36077..78fca7f83 100644 --- a/app/lib/api_geo/driver.rb +++ b/app/lib/api_geo/driver.rb @@ -1,25 +1,23 @@ -module ApiGeo - class Driver - def self.regions - url = [API_GEO_URL, "regions"].join("/") - call(url) - end +class ApiGeo::Driver + def self.regions + url = [API_GEO_URL, "regions"].join("/") + call(url) + end - def self.departements - url = [API_GEO_URL, "departements"].join("/") - call(url) - end + def self.departements + url = [API_GEO_URL, "departements"].join("/") + call(url) + end - def self.pays - File.open('app/lib/api_geo/pays.json').read - end + def self.pays + File.open('app/lib/api_geo/pays.json').read + end - private + private - def self.call(url) - RestClient.get(url, params: { fields: :nom }) - rescue RestClient::ServiceUnavailable - nil - end + def self.call(url) + RestClient.get(url, params: { fields: :nom }) + rescue RestClient::ServiceUnavailable + nil end end From 76cf9ab7464b20afca25f2e40462ea46a6c57462 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Mon, 15 Oct 2018 21:01:37 +0200 Subject: [PATCH 10/11] =?UTF-8?q?ApiGeo::Driver=20=E2=86=92=20ApiGeo::API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/lib/api_geo/{driver.rb => api.rb} | 2 +- app/models/champs/departement_champ.rb | 2 +- app/models/champs/pays_champ.rb | 2 +- app/models/champs/region_champ.rb | 2 +- spec/lib/api_geo/{driver_spec.rb => api_spec.rb} | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) rename app/lib/api_geo/{driver.rb => api.rb} (94%) rename spec/lib/api_geo/{driver_spec.rb => api_spec.rb} (94%) diff --git a/app/lib/api_geo/driver.rb b/app/lib/api_geo/api.rb similarity index 94% rename from app/lib/api_geo/driver.rb rename to app/lib/api_geo/api.rb index 78fca7f83..5e86389a5 100644 --- a/app/lib/api_geo/driver.rb +++ b/app/lib/api_geo/api.rb @@ -1,4 +1,4 @@ -class ApiGeo::Driver +class ApiGeo::API def self.regions url = [API_GEO_URL, "regions"].join("/") call(url) diff --git a/app/models/champs/departement_champ.rb b/app/models/champs/departement_champ.rb index 7abf86011..8439a912d 100644 --- a/app/models/champs/departement_champ.rb +++ b/app/models/champs/departement_champ.rb @@ -1,5 +1,5 @@ class Champs::DepartementChamp < Champs::TextChamp def self.departements - JSON.parse(ApiGeo::Driver.departements).map { |liste| "#{liste['code']} - #{liste['nom']}" }.push('99 - Étranger') + JSON.parse(ApiGeo::API.departements).map { |liste| "#{liste['code']} - #{liste['nom']}" }.push('99 - Étranger') end end diff --git a/app/models/champs/pays_champ.rb b/app/models/champs/pays_champ.rb index da495e0f5..c8b1d68d8 100644 --- a/app/models/champs/pays_champ.rb +++ b/app/models/champs/pays_champ.rb @@ -1,5 +1,5 @@ class Champs::PaysChamp < Champs::TextChamp def self.pays - JSON.parse(ApiGeo::Driver.pays).pluck("nom") + JSON.parse(ApiGeo::API.pays).pluck("nom") end end diff --git a/app/models/champs/region_champ.rb b/app/models/champs/region_champ.rb index 2415a63d0..f8ac792ef 100644 --- a/app/models/champs/region_champ.rb +++ b/app/models/champs/region_champ.rb @@ -1,5 +1,5 @@ class Champs::RegionChamp < Champs::TextChamp def self.regions - JSON.parse(ApiGeo::Driver.regions).sort_by { |e| e['nom'] }.pluck("nom") + JSON.parse(ApiGeo::API.regions).sort_by { |e| e['nom'] }.pluck("nom") end end diff --git a/spec/lib/api_geo/driver_spec.rb b/spec/lib/api_geo/api_spec.rb similarity index 94% rename from spec/lib/api_geo/driver_spec.rb rename to spec/lib/api_geo/api_spec.rb index 1c8e35517..6e1be6652 100644 --- a/spec/lib/api_geo/driver_spec.rb +++ b/spec/lib/api_geo/api_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe ApiGeo::Driver do +describe ApiGeo::API do describe '.regions', vcr: { cassette_name: 'api_geo_regions' } do subject { described_class.regions } From 32b27ba1111f5a31dce433cb3816c14984f82c56 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Mon, 15 Oct 2018 17:37:38 +0200 Subject: [PATCH 11/11] Add some spacing --- app/lib/api_adresse/point_retriever.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/lib/api_adresse/point_retriever.rb b/app/lib/api_adresse/point_retriever.rb index 3a4b5ee9f..bd0b41c89 100644 --- a/app/lib/api_adresse/point_retriever.rb +++ b/app/lib/api_adresse/point_retriever.rb @@ -11,10 +11,12 @@ class ApiAdresse::PointRetriever def convert_api_result_to_point result = JSON.parse(ApiAdresse::API.call(@address)) + if result['features'].empty? Rails.logger.error "unable to find location for address #{@address}" return nil end + RGeo::GeoJSON.decode(result['features'][0]['geometry'], json_parser: :json) end end