codestates / codestates/Reciper-server

[✍️ Dev Log] 정송이 / 2021-06-02

Open
#215 0 comments 0 reactions 1 assignee Claimed by @lovelysi0113 View on GitHub
@lovelysi0113/기록은 성장의 밑거름 ❄️ Dev Log
Dominant language
TypeScript
Stars
9
Forks
3
PR merge metrics
No merged PRs in 30d

Description

### 오늘은 어떻게 프로젝트에 기여했나요?
- workspace: chat 기능 보완
- #212 `sendMessage` 이벤트에서 생성된 chat 데이터의 id를 작성자에게 보내주는 부분 추가
- workspace: kanban 기능 보완
- #166 taskColor 데이터도 함께 저장하도록 수정
- #136 `structuringData` 함수에서 comment 데이터에 writer 데이터가 있도록 SQL 구문 보완
```js
const projects = await getRepository(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();
```
- #174 `post /workspace/:projectURL/kanban/:part` 요청 로직 수정 (이하 `editKanbanPart`로 표기)
- part 이름을 수정하면 자꾸 이미 존재하는 part라는 에러가 발생했다
![unknown](https://user-images.githubusercontent.com/77570843/120479240-ad2a6d80-c3e8-11eb-99c0-e7de561e253a.png)
- 알고보니 `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하는 경우는 고려하지 않아도 된다
- 프로젝트 문서화
- [README](https://github.com/codestates/Reciper-client/blob/dev/README.md) 작성 (`updateReciperInfo` 브랜치)
- [WIKI](https://github.com/codestates/Reciper-client/wiki) 작성
- [NOTION](https://www.notion.so/1-Reciper-de93f39a78844d7cb9af57c041ccfa27) 작성 (기술 발표 문서)

### 오늘의 프로젝트에서 힘든 점은 무엇인가요?
- #214 한 이벤트 함수 내에서 emit을 여러번 보내지 못하는 이슈 해결

### 내일은 프로젝트에 기여하기 위해 무엇을 해야 하나요?
- [x] 에러 수정 및 코드 보완
- [x] 프로젝트 문서화
- [x] 개인 기술 발표 준비(socket.io)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.