You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
constprojects=awaitgetRepository(Projects).createQueryBuilder('projects').where('projects.id = :id',{id: projectId}).leftJoinAndSelect('projects.partsList','partsList','partsList.name = :name',{name: part}).leftJoinAndSelect('partsList.taskBoxesList','taskBoxesList').leftJoinAndSelect('taskBoxesList.tasksList','tasksList').leftJoinAndSelect('tasksList.checklistsList','checklistsList').leftJoinAndSelect('tasksList.commentsList','commentsList').leftJoinAndSelect('commentsList.writer','writer')// 이 부분 추가.orderBy('taskBoxesList.index','ASC').addOrderBy('tasksList.index','ASC').addOrderBy('checklistsList.createdAt','ASC').getMany();
알고보니 controllers/workspace/socketKanban.ts의 joinPart 이벤트에서 DB에 존재하지 않는 part에 들어가게 되면 자동으로 그 이름을 DB에 추가해주는 로직이 있었고 클라이언트에서 part 이름을 수정할 때 editKanbanPart 요청과 joinPart를 동시에 실행시키고 있었다 joinPart 이벤트가 먼저 실행(수정하는 이름으로 된 part로 입장-그 이름을 DB에 저장)된 이후에 editKanbanPart 요청이 실행되었는데(socket 통신이 express보다 빠름) 이때에는 수정하려는 이름이 이미 DB에 존재하고 있었기에 계속 'already existed error'가 발생한 것이었다
joinPart에서 DB에 저장하는 부분을 삭제했더니 part 이름 수정이 잘 되는 것을 확인할 수 있었다
해당 부분을 삭제해도 되는 이유는 joinPart 이벤트가 발생할 때에는 이미 DB에 존재하는 part로 접속한다는 것이 보장되어 있기 때문에(처음에 part 목록을 내려주고 그 목록 내에서 버튼을 클릭하여 part 이동을 하도록 구현되어 있음) DB에 존재하지 않는 이름을 가진 part로 join하는 경우는 고려하지 않아도 된다
오늘은 어떻게 프로젝트에 기여했나요?
sendMessage이벤트에서 생성된 chat 데이터의 id를 작성자에게 보내주는 부분 추가structuringData함수에서 comment 데이터에 writer 데이터가 있도록 SQL 구문 보완post /workspace/:projectURL/kanban/:part요청 로직 수정 (이하editKanbanPart로 표기)controllers/workspace/socketKanban.ts의joinPart이벤트에서 DB에 존재하지 않는 part에 들어가게 되면 자동으로 그 이름을 DB에 추가해주는 로직이 있었고 클라이언트에서 part 이름을 수정할 때editKanbanPart요청과joinPart를 동시에 실행시키고 있었다joinPart이벤트가 먼저 실행(수정하는 이름으로 된 part로 입장-그 이름을 DB에 저장)된 이후에editKanbanPart요청이 실행되었는데(socket 통신이 express보다 빠름) 이때에는 수정하려는 이름이 이미 DB에 존재하고 있었기에 계속 'already existed error'가 발생한 것이었다joinPart에서 DB에 저장하는 부분을 삭제했더니 part 이름 수정이 잘 되는 것을 확인할 수 있었다joinPart이벤트가 발생할 때에는 이미 DB에 존재하는 part로 접속한다는 것이 보장되어 있기 때문에(처음에 part 목록을 내려주고 그 목록 내에서 버튼을 클릭하여 part 이동을 하도록 구현되어 있음) DB에 존재하지 않는 이름을 가진 part로 join하는 경우는 고려하지 않아도 된다updateReciperInfo브랜치)오늘의 프로젝트에서 힘든 점은 무엇인가요?
내일은 프로젝트에 기여하기 위해 무엇을 해야 하나요?