class CARTO::SGMAP::Cadastre::Adapter
  def initialize(coordinates)
    @coordinates = GeojsonService.to_json_polygon_for_cadastre(coordinates)
  end

  def data_source
    @data_source ||= JSON.parse(CARTO::SGMAP::API.search_cadastre(@coordinates), symbolize_names: true)
  end

  def to_params
    data_source[:features].inject([]) do |acc, feature|
      tmp = filter_properties feature[:properties]
      tmp[:geometry] = feature[:geometry]

      acc << tmp
    end
  end

  def filter_properties properties
    {
        surface_intersection: properties[:surface_intersection],
        surface_parcelle:  properties[:surface_parcelle],
        numero: properties[:numero],
        feuille: properties[:feuille],
        section: properties[:section],
        code_dep: properties[:code_dep],
        nom_com: properties[:nom_com],
        code_com: properties[:code_com],
        code_arr: properties[:code_arr]
    }
  end
end