diff --git a/src/gisaf/api.py b/src/gisaf/api.py index fb42e2b..abd0cbe 100644 --- a/src/gisaf/api.py +++ b/src/gisaf/api.py @@ -16,6 +16,7 @@ from gisaf.models.to_migrate import DataProvider from gisaf.config import conf from gisaf.models.bootstrap import BootstrapData from gisaf.models.store import Store +from gisaf.models.project import Project from gisaf.database import pandas_query, fastapi_db_session as db_session from gisaf.security import ( Token, @@ -108,6 +109,13 @@ async def get_stores() -> list[Store]: drop(columns=['model', 'raw_model', 'base_gis_type']) return df.to_dict(orient="records") +@api.get("/projects") +async def get_projects( + db_session: db_session, + ) -> list[Project]: + query = select(Project) + df = await db_session.run_sync(pandas_query, query) + return df.to_dict(orient="records") # @api.get("/user-role") # async def get_user_role_relation( diff --git a/src/gisaf/models/project.py b/src/gisaf/models/project.py index d099ea3..6130d11 100644 --- a/src/gisaf/models/project.py +++ b/src/gisaf/models/project.py @@ -1,4 +1,4 @@ -from datetime import datetime +from datetime import datetime, date from csv import writer from collections import defaultdict from io import BytesIO, StringIO @@ -11,7 +11,7 @@ from gisaf.config import conf from gisaf.models.models_base import Model from gisaf.models.metadata import gisaf_admin -class Project(Model): +class Project(Model, table=True): metadata = gisaf_admin class Admin: @@ -22,11 +22,11 @@ class Project(Model): name: str contact_person: str site: str - date_approved: datetime - start_date_planned: datetime - start_date_effective: datetime - end_date_planned: datetime - end_date_effective: datetime + date_approved: date + start_date_planned: date + start_date_effective: date + end_date_planned: date + end_date_effective: date def __str__(self): return '{self.name:s}'.format(self=self)