Add ApiGeo RPG adapter

This commit is contained in:
Paul Chavard 2018-10-23 15:37:13 +02:00
parent ed46e2c3be
commit 7ffbe417f9
5 changed files with 49 additions and 0 deletions

View file

@ -15,6 +15,11 @@ class ApiGeo::API
parse(File.open('app/lib/api_geo/pays.json').read)
end
def self.search_rpg(geojson)
url = [API_GEO_SANDBOX_URL, "rpg", "parcelles", "search"].join("/")
call(url, geojson, :post)
end
private
def self.parse(body)

View file

@ -0,0 +1,24 @@
class ApiGeo::RPGAdapter
def initialize(coordinates)
@coordinates = GeojsonService.to_json_polygon_for_rpg(coordinates)
end
def data_source
@data_source ||= ApiGeo::API.search_rpg(@coordinates)
end
def results
data_source[:features].map do |feature|
feature[:properties]
.stringify_keys
.transform_keys(&:underscore)
.symbolize_keys
.slice(
:culture,
:code_culture,
:surface,
:bio
).merge({ geometry: feature[:geometry] })
end
end
end