diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..a7c78cc --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,6 @@ +dependencies: + override: + - bundle install +test: + override: + - ruby tests/app_test.rb diff --git a/app.rb b/app.rb index e6db3c7..d128d04 100644 --- a/app.rb +++ b/app.rb @@ -4,5 +4,18 @@ require 'httparty' get '/' do - erb :index, :locals => {result: nil} + if params[:url] then + if params[:url] == '' then + erb :index, :locals => {result: nil, error: 'Endereço Inválido'} + else + escaped = URI.escape(params[:url]) + url = "http://maps.google.com/maps/api/geocode/json?address=#{escaped}" + response = HTTParty.get(url) + parsed = JSON.parse(response.body)['results'] + erb :index, :locals => {result: parsed.first, error: nil} + end + else + erb :index, :locals => {result: nil, error: nil} + end + end diff --git a/tests/app_test.rb b/tests/app_test.rb index 87acaa0..3dcbc8f 100644 --- a/tests/app_test.rb +++ b/tests/app_test.rb @@ -14,4 +14,15 @@ def test_home_busca_de_endereco get '/' assert_match /Busca de Endereço/, last_response.body end + + def test_home_busca_de_endereco_information + get '/?url=Avenida+Mato+Grosso+1010' + assert_match /Avenida Mato Grosso/, last_response.body + end + + def test_home_busca_invalida + get '/?url=' + assert_match /Endereço Inválido/, last_response.body + end + end diff --git a/views/index.erb b/views/index.erb index ff7d9fb..60932a9 100644 --- a/views/index.erb +++ b/views/index.erb @@ -8,7 +8,23 @@
- <%= result %> + <%if result != nil%> +

<%= result["formatted_address"] %>

+ +

Geometry

+ +

Place Id: <%= result["place_id"]%>

+ <%else%> +

<%= error %>

+ <%end%>