mirror of
https://github.com/a-mayb3/Kanban_clone_backend.git
synced 2026-03-21 10:05:38 +01:00
change user addition to project to be based off of email address and not user id
This commit is contained in:
parent
1b84af0025
commit
0f0b27b2d9
2 changed files with 11 additions and 8 deletions
|
|
@ -4,7 +4,7 @@ from typing import List, Annotated
|
||||||
from database import db_dependency
|
from database import db_dependency
|
||||||
|
|
||||||
from schemas.tasks import TaskBase, TaskCreate, TaskUpdate
|
from schemas.tasks import TaskBase, TaskCreate, TaskUpdate
|
||||||
from schemas.projects import ProjectBase, ProjectCreate, ProjectUpdate, ProjectAddUsers, ProjectRemoveUsers, ProjectFull
|
from schemas.projects import ProjectBase, ProjectCreate, ProjectUpdate, ProjectAddUser, ProjectRemoveUsers, ProjectFull
|
||||||
from schemas.users import UserBase
|
from schemas.users import UserBase
|
||||||
from schemas.projects_users import ProjectUserBase
|
from schemas.projects_users import ProjectUserBase
|
||||||
from schemas.projects_tasks import ProjectTaskBase, ProjectTaskCreate
|
from schemas.projects_tasks import ProjectTaskBase, ProjectTaskCreate
|
||||||
|
|
@ -134,17 +134,17 @@ def create_project_task(project_id: int, task: TaskCreate, db: db_dependency, re
|
||||||
db.refresh(db_task)
|
db.refresh(db_task)
|
||||||
return db_task
|
return db_task
|
||||||
|
|
||||||
@router.post("/{project_id}/users", response_model=ProjectAddUsers, tags=["users"])
|
@router.post("/{project_id}/users", response_model=ProjectAddUser, tags=["users"])
|
||||||
def add_project_user(project_id: int, user_data: ProjectAddUsers, db: db_dependency, request: Request):
|
def add_project_user(project_id: int, user_data: ProjectAddUser, db: db_dependency, request: Request):
|
||||||
"""Add users to a specified project using their IDs"""
|
"""Add a user to a specified project using their email address"""
|
||||||
user = get_user_from_jwt(request, db)
|
user = get_user_from_jwt(request, db)
|
||||||
|
|
||||||
db_project = get_project_by_id_for_user(user, project_id, db)
|
db_project = get_project_by_id_for_user(user, project_id, db)
|
||||||
|
|
||||||
for user_id in user_data.user_ids:
|
db_user = db.query(UserBase).filter(getattr(UserBase, "email") == user_data.user_email).first()
|
||||||
db_user = db.query(UserBase).filter(getattr(UserBase, "id") == user_id).first()
|
|
||||||
if db_user:
|
if db_user:
|
||||||
db_project.users.append(db_user)
|
db_project.users.append(db_user)
|
||||||
|
|
||||||
db.commit()
|
db.commit()
|
||||||
db.refresh(db_project)
|
db.refresh(db_project)
|
||||||
return db_project
|
return db_project
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,9 @@ class ProjectUpdate(BaseModel):
|
||||||
name: Optional[str] = None
|
name: Optional[str] = None
|
||||||
description: Optional[str] = None
|
description: Optional[str] = None
|
||||||
|
|
||||||
|
class ProjectAddUser(BaseModel):
|
||||||
|
user_email: str
|
||||||
|
|
||||||
class ProjectAddUsers(BaseModel):
|
class ProjectAddUsers(BaseModel):
|
||||||
user_ids: List[int] = []
|
user_ids: List[int] = []
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue