Add all preamble

This commit is contained in:
Jacob Windsor
2025-02-19 11:59:11 +01:00
parent e7ab94491f
commit 4aba2c5619
11 changed files with 123 additions and 9 deletions
+13
View File
@@ -0,0 +1,13 @@
from fastapi import APIRouter, Depends
from sqlalchemy.orm import Session
from typing import List
from .. import models, schemas, database, repositories
router = APIRouter()
@router.get("/houses", response_model=List[schemas.House])
def list_houses(db: Session = Depends(database.get_db)):
houses = repositories.house.get_all_houses(db)
return houses
+14
View File
@@ -0,0 +1,14 @@
from fastapi import APIRouter, HTTPException, Depends
from typing import List
from app.models import House # Assuming you have a House model
from app.dtos import HouseCreate # Assuming you have a HouseCreate DTO
from app.repositories.house_repository import HouseRepository # Assuming you have a HouseRepository
router = APIRouter()
@router.post("/houses", response_model=House)
async def create_house(house: HouseCreate, house_repo: HouseRepository = Depends()):
new_house = house_repo.create(house)
if not new_house:
raise HTTPException(status_code=400, detail="House creation failed")
return new_house
-27
View File
@@ -1,27 +0,0 @@
from fastapi import APIRouter, HTTPException
from app.models.prediction import HousePredictionInput, HousePredictionOutput
from app.services.ml_model import HousePricePredictor
router = APIRouter()
model = HousePricePredictor()
@router.get("/predictions/house-price",
response_model=HousePredictionOutput,
summary="Get a house price prediction",
description="Predicts the price of a house based on its features"
)
async def predict_price(input_data: HousePredictionInput) -> HousePredictionOutput:
try:
predicted_price, confidence_score, similar_listings = model.predict(
input_data.square_feet,
input_data.bedrooms,
input_data.bathrooms
)
return HousePredictionOutput(
predicted_price=predicted_price,
confidence_score=confidence_score,
similar_listings=similar_listings
)
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))