Add ApiGeo RPG adapter
This commit is contained in:
parent
ed46e2c3be
commit
7ffbe417f9
5 changed files with 49 additions and 0 deletions
|
@ -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)
|
||||
|
|
24
app/lib/api_geo/rpg_adapter.rb
Normal file
24
app/lib/api_geo/rpg_adapter.rb
Normal 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
|
Loading…
Add table
Add a link
Reference in a new issue