import http.client as httplib from ipe_fetcher.model import AreaCoordinates, Building, FAIEligibilityStatus import json class Liazo: def __init__(self): self.https_conn = httplib.HTTPSConnection("vador.fdn.fr") def getAreaBuildings( self, center_lat: float, center_lng: float, existing_buildings: dict ) -> dict: c = self.https_conn req = "/souscription/gps-batiments.cgi?etape=gps_batiments&lat1=%f&lat2=%f&lon1=%f&lon2=%f" % (center_lat-0.0011, center_lat+0.0011, center_lng-0.0022, center_lng+0.0022) req = req.replace(" ", "%20") print("Req FDN with: ", req) c.request("GET", req) r = c.getresponse() if r.status < 200 or r.status >= 300: print("Erreur de serveur chez FDN. Merci de nous faire remonter le numéro de téléphone qui provoque cette erreur") return d = r.read() c.close() v = json.loads(d.decode("utf-8")) if not existing_buildings: existing_buildings = dict() buildings = existing_buildings for building in v: fdnEligStatus = FAIEligibilityStatus( isEligible=True, ftthStatus="DEPLOYE", reasonNotEligible=None, ) idImm=building.get('ref') if buildings.get(idImm): buildings[idImm]["fdnEligStatus"] = fdnEligStatus if buildings[idImm].get('found_in'): buildings[idImm]['found_in'].append("liazo") else: buildings[idImm]['found_in'] = ["liazo"] if not buildings.get(idImm): building = Building( y=building.get('lat'), x=building.get('lon'), idImm=idImm, numVoieImm="", typeVoieImm="", nomVoieImm="", bat_info="", found_in = ["liazo"], fdnEligStatus=fdnEligStatus, ) print("add building ", building) buildings[idImm] = building return buildings