From c9ffbb02edaab984185aabc75b6b745db23752f7 Mon Sep 17 00:00:00 2001 From: Devin Cowan Date: Tue, 13 Aug 2024 12:58:34 -0400 Subject: [PATCH] consolidate filter endpoints into single router --- api/hydroprocess_db/app/routers/__init__.py | 5 +- .../app/routers/filters/router.py | 66 +++++++++++++++++++ .../app/routers/process_taxonomy/router.py | 28 -------- .../app/routers/spatial_zone/router.py | 28 -------- .../app/routers/temporal_zone/router.py | 28 -------- api/hydroprocess_db/main.py | 26 ++------ frontend/src/constants.js | 6 +- 7 files changed, 74 insertions(+), 113 deletions(-) create mode 100644 api/hydroprocess_db/app/routers/filters/router.py delete mode 100644 api/hydroprocess_db/app/routers/process_taxonomy/router.py delete mode 100644 api/hydroprocess_db/app/routers/spatial_zone/router.py delete mode 100644 api/hydroprocess_db/app/routers/temporal_zone/router.py diff --git a/api/hydroprocess_db/app/routers/__init__.py b/api/hydroprocess_db/app/routers/__init__.py index 92d4050..8ec44ef 100644 --- a/api/hydroprocess_db/app/routers/__init__.py +++ b/api/hydroprocess_db/app/routers/__init__.py @@ -1,5 +1,2 @@ +from app.routers.filters.router import router as filters_router from app.routers.perceptual_model.router import router as perceptual_model_router -from app.routers.process_taxonomy.router import router as process_taxonomy_router -from app.routers.spatial_zone.router import router as spatial_zone_router -from app.routers.statistics.router import router as statistics_router -from app.routers.temporal_zone.router import router as temporal_zone_router diff --git a/api/hydroprocess_db/app/routers/filters/router.py b/api/hydroprocess_db/app/routers/filters/router.py new file mode 100644 index 0000000..7810cdc --- /dev/null +++ b/api/hydroprocess_db/app/routers/filters/router.py @@ -0,0 +1,66 @@ +from typing import List + +from fastapi import APIRouter, Depends +from sqlmodel import select + +from app.db import get_session +from app.models import ProcessTaxonomy, SpatialZoneType, TemporalZoneType + +router = APIRouter() + + +@router.get( + "/process_taxonomies", + description="Get all process taxonomy entries.", + response_model=List[ProcessTaxonomy], +) +def get_process_taxonomy_entries(*, session=Depends(get_session)): + """ + Get process taxonomy entries from the database. + + Parameters: + - session: The async session to use for database operations. + + Returns: + - A list of process taxonomy entries. + """ + process_taxonomy_entries = session.exec(select(ProcessTaxonomy)).all() + return process_taxonomy_entries + + +@router.get( + "/spatial_zones", + description="Get all spatial zone types", + response_model=List[SpatialZoneType], +) +def get_spatial_zones_entries(*, session=Depends(get_session)): + """ + Get spatial zone types from the database. + + Parameters: + - session: The async session to use for database operations. + + Returns: + - A list of spatial zone types. + """ + spatial_zone_types = session.exec(select(SpatialZoneType)).all() + return spatial_zone_types + + +@router.get( + "/temporal_zones", + description="Get all temporal zone types", + response_model=List[TemporalZoneType], +) +def get_temporal_zones_entries(*, session=Depends(get_session)): + """ + Get temporal zone types from the database. + + Parameters: + - session: The async session to use for database operations. + + Returns: + - A list of temporal zone types. + """ + temporal_zone_types = session.exec(select(TemporalZoneType)).all() + return temporal_zone_types diff --git a/api/hydroprocess_db/app/routers/process_taxonomy/router.py b/api/hydroprocess_db/app/routers/process_taxonomy/router.py deleted file mode 100644 index 33c53d6..0000000 --- a/api/hydroprocess_db/app/routers/process_taxonomy/router.py +++ /dev/null @@ -1,28 +0,0 @@ -from typing import List - -from fastapi import APIRouter, Depends -from sqlmodel import select - -from app.db import get_session -from app.models import ProcessTaxonomy - -router = APIRouter() - - -@router.get( - "/", - description="Get all process taxonomy entries.", - response_model=List[ProcessTaxonomy], -) -def get_process_taxonomy_entries(*, session=Depends(get_session)): - """ - Get process taxonomy entries from the database. - - Parameters: - - session: The async session to use for database operations. - - Returns: - - A list of process taxonomy entries. - """ - process_taxonomy_entries = session.exec(select(ProcessTaxonomy)).all() - return process_taxonomy_entries diff --git a/api/hydroprocess_db/app/routers/spatial_zone/router.py b/api/hydroprocess_db/app/routers/spatial_zone/router.py deleted file mode 100644 index 583ede6..0000000 --- a/api/hydroprocess_db/app/routers/spatial_zone/router.py +++ /dev/null @@ -1,28 +0,0 @@ -from typing import List - -from fastapi import APIRouter, Depends -from sqlmodel import select - -from app.db import get_session -from app.models import SpatialZoneType - -router = APIRouter() - - -@router.get( - "/", - description="Get all spatial zone types", - response_model=List[SpatialZoneType], -) -def get_spatial_zones_entries(*, session=Depends(get_session)): - """ - Get spatial zone types from the database. - - Parameters: - - session: The async session to use for database operations. - - Returns: - - A list of spatial zone types. - """ - spatial_zone_types = session.exec(select(SpatialZoneType)).all() - return spatial_zone_types diff --git a/api/hydroprocess_db/app/routers/temporal_zone/router.py b/api/hydroprocess_db/app/routers/temporal_zone/router.py deleted file mode 100644 index ca08321..0000000 --- a/api/hydroprocess_db/app/routers/temporal_zone/router.py +++ /dev/null @@ -1,28 +0,0 @@ -from typing import List - -from fastapi import APIRouter, Depends -from sqlmodel import select - -from app.db import get_session -from app.models import TemporalZoneType - -router = APIRouter() - - -@router.get( - "/", - description="Get all temporal zone types", - response_model=List[TemporalZoneType], -) -def get_temporal_zones_entries(*, session=Depends(get_session)): - """ - Get temporal zone types from the database. - - Parameters: - - session: The async session to use for database operations. - - Returns: - - A list of temporal zone types. - """ - temporal_zone_types = session.exec(select(TemporalZoneType)).all() - return temporal_zone_types diff --git a/api/hydroprocess_db/main.py b/api/hydroprocess_db/main.py index 49d1e41..0add203 100644 --- a/api/hydroprocess_db/main.py +++ b/api/hydroprocess_db/main.py @@ -4,11 +4,8 @@ from fastapi.middleware.cors import CORSMiddleware from app.db import create_db_and_tables +from app.routers.filters.router import router as filters_router from app.routers.perceptual_model.router import router as perceptual_model_router -from app.routers.process_taxonomy.router import router as process_taxonomy_router -from app.routers.spatial_zone.router import router as spatial_zone_router -from app.routers.statistics.router import router as statistics_router -from app.routers.temporal_zone.router import router as temporal_zone_router from app.schemas import UserCreate, UserRead, UserUpdate from app.users import auth_backend, fastapi_users from config import get_settings @@ -60,22 +57,7 @@ async def lifespan(app: FastAPI): tags=["perceptual_model"], ) app.include_router( - process_taxonomy_router, - prefix="/process_taxonomy", - tags=["process_taxonomy"], -) -app.include_router( - spatial_zone_router, - prefix="/spatial_zone", - tags=["spatial_zone"], -) -app.include_router( - temporal_zone_router, - prefix="/temporal_zone", - tags=["temporal_zone"], -) -app.include_router( - statistics_router, - prefix="/statistics", - tags=["statistics"], + filters_router, + prefix="/filters", + tags=["filters"], ) diff --git a/frontend/src/constants.js b/frontend/src/constants.js index 14772e5..9c9ff0b 100644 --- a/frontend/src/constants.js +++ b/frontend/src/constants.js @@ -8,7 +8,7 @@ export const ENDPOINTS = { perceptual_models_geojson: `${APP_API_URL}/perceptual_model/geojson`, perceptual_models: `${APP_API_URL}/perceptual_model`, model_type_count: `${APP_API_URL}/statistics/model_type_count`, - process_taxonomies: `${APP_API_URL}/process_taxonomy`, - spatial_zones: `${APP_API_URL}/spatial_zone`, - temporal_zones: `${APP_API_URL}/temporal_zone` + process_taxonomies: `${APP_API_URL}/filters/process_taxonomies`, + spatial_zones: `${APP_API_URL}/filters/spatial_zones`, + temporal_zones: `${APP_API_URL}/filters/temporal_zones` }