From fb0c5859b900b4e38023768e4158f01d18c9091f Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 20 Jul 2023 12:37:03 +0100 Subject: [PATCH] restructure wip --- backend/app/plan/router.py | 19 ++++++++++++++++++- conservation_areas/ConservationAreaClient.py | 8 ++++---- conservation_areas/app.py | 18 ++++++++---------- serverless.yml | 2 ++ 4 files changed, 32 insertions(+), 15 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 0fd19e41..bd4492f6 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -1,10 +1,11 @@ from fastapi import APIRouter, Depends from backend.app.dependencies import validate_token from backend.app.plan.schemas import PlanTriggerRequest -from backend.app.utils import read_csv_from_s3, setup_logger +from backend.app.utils import read_csv_from_s3 from backend.app.config import get_settings from model_data.Property import Property from epc_api.client import EpcClient +from utils.logger import setup_logger logger = setup_logger() @@ -35,6 +36,17 @@ open_uprn_data = [ 'LONGITUDE': -0.0823165} ] +in_conservation_area_data = [ + {'uprn': 6032920, 'is_in_conservation_area': 'not_in_conservation_area'}, + {'uprn': 6038625, 'is_in_conservation_area': 'not_in_conservation_area'}, + {'uprn': 34153991, 'is_in_conservation_area': 'unknown'}, + {'uprn': 10008299676, 'is_in_conservation_area': 'in_conservation_area'}, + {'uprn': 10008299677, 'is_in_conservation_area': 'in_conservation_area'}, + {'uprn': 100021039066, 'is_in_conservation_area': 'not_in_conservation_area'}, + {'uprn': 100021226060, 'is_in_conservation_area': 'in_conservation_area'}, + {'uprn': 200003489276, 'is_in_conservation_area': 'in_conservation_area'} +] + @router.post("/trigger") async def trigger_plan(body: PlanTriggerRequest): @@ -62,4 +74,9 @@ async def trigger_plan(body: PlanTriggerRequest): coordinate_data = [x for x in open_uprn_data if x['UPRN'] == int(p.data['uprn'])][0] p.set_coordinates(coordinate_data) + logger.info("Check if property is in conservation area") + for p in input_properties: + in_conservation_area = [x for x in in_conservation_area_data if x['uprn'] == int(p.data['uprn'])][0] + p.set_is_in_conservation_area(in_conservation_area) + return {"message": "Plan complete"} diff --git a/conservation_areas/ConservationAreaClient.py b/conservation_areas/ConservationAreaClient.py index 357cfe13..164042f9 100644 --- a/conservation_areas/ConservationAreaClient.py +++ b/conservation_areas/ConservationAreaClient.py @@ -52,8 +52,8 @@ class ConservationAreaClient: raise ValueError("Coordinates have not been set, run get_coordinates() first") is_in_conservation_area = self.is_in_conservation_area_historic_england( - x_bng=coordinates["x_coordinate"], - y_bng=coordinates["y_coordinate"] + x_bng=coordinates.X_COORDINATE, + y_bng=coordinates.Y_COORDINATE ) if is_in_conservation_area != "unknown": @@ -62,8 +62,8 @@ class ConservationAreaClient: if is_in_conservation_area == "unknown": # We double check the secondary data source backup = self.is_in_conservation_area_historic_gov( - longitude=coordinates["longitude"], - latitude=coordinates["latitude"] + longitude=coordinates.LONGITUDE, + latitude=coordinates.LATITUDE ) if backup: diff --git a/conservation_areas/app.py b/conservation_areas/app.py index 544993a0..1038bcfe 100644 --- a/conservation_areas/app.py +++ b/conservation_areas/app.py @@ -5,6 +5,7 @@ our database for querying from other services import os from conservation_areas.ConservationAreaClient import ConservationAreaClient +from datatypes.datatypes import OpenUprnCoordinateData def app(): @@ -38,16 +39,13 @@ def app(): 'LONGITUDE': -0.0823165} ] - result = [conservation_area_client.is_in_conservation_area(coordinates) for coordinates in open_uprn_data] - - conservation_area_client - - uprns = [ - int(x) for x in - ['34153991', '6038625', '100021039066', '100021226060', '10008299676', '10008299677', '6032920', '200003489276'] + result = [ + { + "uprn": coordinates["UPRN"], + "is_in_conservation_area": conservation_area_client.is_in_conservation_area( + OpenUprnCoordinateData(**coordinates)) + } for coordinates in + open_uprn_data ] - open_uprn_client.data[open_uprn_client.data["UPRN"].isin( - uprns - )].to_dict("records") # TODO: Add a method to write to the database diff --git a/serverless.yml b/serverless.yml index b0de561d..59301049 100644 --- a/serverless.yml +++ b/serverless.yml @@ -38,6 +38,8 @@ package: - infrastructure/** - data_collection/** - node_modules/** + - conservation_areas/** + - open_uprn/** plugins: - serverless-python-requirements