From ac8cf271698788d4479626dae19f09a0027c79aa Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 11 Apr 2024 11:20:29 +0100 Subject: [PATCH] created extract kwargs to read bathrooms and bedrooms --- backend/Property.py | 22 ++++++++++++++++++++++ backend/app/plan/router.py | 1 + 2 files changed, 23 insertions(+) diff --git a/backend/Property.py b/backend/Property.py index 6f2e648d..5fe9716e 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -139,6 +139,28 @@ class Property: self.recommendations_scoring_data = [] + @classmethod + def extract_kwargs(cls, kwargs): + """ + This method is to be used in the router, to extract the kwargs from the request and prevent any errors such as + non-integer values, or inputs that clash with the __init__ method of this class + :param kwargs: + :return: + """ + n_bathrooms = kwargs.get("n_bathrooms", None) + if n_bathrooms is not None: + # We add on a small value to ensure that the number of bathrooms is rounded up, in case the value is 0.5 + n_bathrooms = int(round(n_bathrooms + 1e-5)) + + n_bedrooms = kwargs.get("n_bedrooms", None) + if n_bedrooms is not None: + n_bedrooms = int(round(n_bedrooms + 1e-5)) + + return { + "n_bathrooms": n_bathrooms, + "n_bedrooms": n_bedrooms, + } + def parse_kwargs(self, kwargs): # We extract the elements from kwargs that we recognise. Anything additional is ignored self.n_bathrooms = kwargs.get("n_bathrooms", None) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 6f179c79..7dc11bb9 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -139,6 +139,7 @@ async def trigger_plan(body: PlanTriggerRequest): address=epc_searcher.address_clean, postcode=epc_searcher.postcode_clean, epc_record=prepared_epc, + **Property.extract_kwargs(config) ) )