@@ -20,6 +20,7 @@ class ProjectService:
2020
2121 @staticmethod
2222 def _get_user (db : Session , username : str ) -> User :
23+ """Return the user for the given username or raise 404."""
2324 user = UserRepository .get_by_username (db , username )
2425 if user is None :
2526 raise HTTPException (
@@ -30,6 +31,7 @@ def _get_user(db: Session, username: str) -> User:
3031
3132 @staticmethod
3233 def list_projects (db : Session , username : str ) -> List [ProjectResponse ]:
34+ """List all projects owned by the given user."""
3335 user = ProjectService ._get_user (db , username )
3436 projects = ProjectRepository .list_for_user (db , user .user_id )
3537 return [ProjectResponse .model_validate (p ) for p in projects ]
@@ -38,6 +40,7 @@ def list_projects(db: Session, username: str) -> List[ProjectResponse]:
3840 def get_project_with_papers (
3941 db : Session , username : str , project_id : int
4042 ) -> ProjectWithPapersResponse :
43+ """Return a single project and all of its stored papers."""
4144 user = ProjectService ._get_user (db , username )
4245 project = ProjectRepository .get_for_user (db , project_id , user .user_id )
4346 if project is None :
@@ -56,6 +59,7 @@ def get_project_with_papers(
5659 def create_project (
5760 db : Session , username : str , payload : ProjectCreate
5861 ) -> ProjectResponse :
62+ """Create a new project for the given user."""
5963 user = ProjectService ._get_user (db , username )
6064 project = ProjectRepository .create_for_user (
6165 db , user .user_id , payload .project_name
@@ -66,6 +70,7 @@ def create_project(
6670 def update_project (
6771 db : Session , username : str , project_id : int , payload : ProjectUpdate
6872 ) -> ProjectResponse :
73+ """Update metadata of an existing project."""
6974 user = ProjectService ._get_user (db , username )
7075 project = ProjectRepository .get_for_user (db , project_id , user .user_id )
7176 if project is None :
@@ -80,6 +85,7 @@ def update_project(
8085
8186 @staticmethod
8287 def delete_project (db : Session , username : str , project_id : int ) -> None :
88+ """Delete a project that belongs to the given user."""
8389 user = ProjectService ._get_user (db , username )
8490 project = ProjectRepository .get_for_user (db , project_id , user .user_id )
8591 if project is None :
@@ -93,6 +99,7 @@ def delete_project(db: Session, username: str, project_id: int) -> None:
9399 def add_paper_to_project (
94100 db : Session , username : str , project_id : int , paper_id : int
95101 ) -> ProjectWithPapersResponse :
102+ """Add a paper reference to the given project."""
96103 user = ProjectService ._get_user (db , username )
97104 try :
98105 project = ProjectRepository .add_paper (
@@ -114,6 +121,7 @@ def add_paper_to_project(
114121 def remove_paper_from_project (
115122 db : Session , username : str , project_id : int , paper_id : int
116123 ) -> ProjectWithPapersResponse :
124+ """Remove a paper reference from the given project."""
117125 user = ProjectService ._get_user (db , username )
118126 try :
119127 project = ProjectRepository .remove_paper (
0 commit comments