update validation of PlanTriggerRequest to use cls rather than self

This commit is contained in:
Khalim Conn-Kowlessar 2024-03-28 14:52:24 +00:00
parent 91eb9c68f1
commit 22a3e21f52
3 changed files with 8 additions and 10 deletions

View file

@ -170,9 +170,7 @@ async def trigger_plan(body: PlanTriggerRequest):
p.get_components(cleaned, photo_supply_lookup, floor_area_decile_thresholds)
recommender = Recommendations(property_instance=p, materials=materials)
# TODO: portfolio id as an input is temp
print("DELETE PORTFOLIO ID AS AN INPUT!!")
property_recommendations, property_representative_recommendations = recommender.recommend(body.portfolio_id)
property_recommendations, property_representative_recommendations = recommender.recommend()
if not property_recommendations:
continue

View file

@ -31,21 +31,21 @@ class PlanTriggerRequest(BaseModel):
# Validator to ensure exclusions are within the pre-defined possibilities
@validator('exclusions', each_item=True)
def check_exclusions(self, v):
if v not in self._allowed_exclusions:
def check_exclusions(cls, v):
if v not in cls._allowed_exclusions:
raise ValueError(f"{v} is not an allowed exclusion")
return v
# Validator to ensure that the goal is within the pre-defined possibilities
@validator('goal')
def check_goal(self, v):
if v not in self._allowed_goals:
def check_goal(cls, v):
if v not in cls._allowed_goals:
raise ValueError(f"{v} is not a valid goal")
return v
# Validator to ensure that the housing type is within the pre-defined possibilities
@validator('housing_type')
def check_housing_type(self, v):
if v not in self.allowed_housing_types:
def check_housing_type(cls, v):
if v not in cls._allowed_housing_types:
raise ValueError(f"{v} is not a valid housing type")
return v

View file

@ -47,7 +47,7 @@ class Recommendations:
self.heating_recommender = HeatingRecommender(property_instance=property_instance)
self.hotwater_recommender = HotwaterRecommendations(property_instance=property_instance)
def recommend(self, portfolio_id):
def recommend(self):
"""
This method runs the recommendations for the individual measures and then appends them to a list for output