[✍️ Dev Log] 신승길 / 2021-05-28
@gatsukichi đang làm issue này rồi.
Từ ngày 28/5/2021.
Đánh giá
Issue này chưa được đánh giá.
Mô tả
오늘은 어떻게 프로젝트에 기여했나요?
- #166 먼저 task Detail창을 열게되면 나오는 edit 에대한 event를 처리했다.
- #167 이후 taskBox를 draggig할시 접속된 모든 소켓에 브로드캐스트로 block처리 이벤트를 했다 (클라이언트 은욱님께서 수고해주셧다)
- #167 taskItem의 dragging block처리 이벤트 구현했다.
- #171 로 merge를 완료했고
오후에 송이님께서 이니셜셋업을 끝내주신 part에대한 api를 처리했다.
CRUD를 생각하면 편하다
- #172 Read부분의 ShowKanbanParts API 구현
- #173 Create부분의 CreateKanbanParts API 구현
- #174 Update부분의 EditKanbanParts API 구현
- #175 Delete부분의 DeleteKanbanParts API 구현
- #180 이후 create부분에서 받아오는 index를 클라이언트에서 요구하지않기위해서 서버로직으로 해결했다.
오늘의 프로젝트에서 힘든 점은 무엇인가요?
- SQL에서 살짝헤맨거같다..
- typeORM에서 createQueryBuilder? 기능으로 leftJoin을 엄청 시켜놓은 부분이있는데
- 나는 코드흐름대로 중간중간 order를 끼워넣었지만. 이게 정상작동하는것으로 착각하고있던거같다 (어제)
.createQueryBuilder('projects')
.where('projects.id = :id', { id: projectId })
.leftJoinAndSelect('projects.partsList', 'partsList', 'partsList.title = :title', { title: part })
.leftJoinAndSelect('partsList.taskBoxesList', 'taskBoxesList')
.orderBy('taskBoxesList.index', 'ASC')
.leftJoinAndSelect('taskBoxesList.tasksList', 'tasksList')
.orderBy('tasksList.index', 'ASC')
.leftJoinAndSelect('tasksList.checklistsList', 'checklistsList')
.orderBy('checklistsList.createdAt', 'ASC')
.leftJoinAndSelect('tasksList.commentsList', 'commentsList')
// .getQuery();
.getMany();
- 이후 오늘발견된 내용으로는 그냥 order에대한부분 자체가 안먹는것이였다. 뭐지 했는데
- 송이님께서 쿼리에서 order부분은 항상 마지막에 붙는다고 지적해주셨고 실제로
- getQuery()를 통해서 확인해본결과
SELECT `projects`.`id` AS `projects_id`, `projects`.`name` AS `projects_name`, `projects`.`projectURL` AS `projects_projectURL`, `projects`.`projectColor` AS `projects_projectColor`, `projects`.`inviteList` AS `projects_inviteList`, `projects`.`createdAt` AS `projects_createdAt`, `projects`.`updatedAt` AS `projects_updatedAt`, `partsList`.`id` AS `partsList_id`, `partsList`.`title` AS `partsList_title`, `partsList`.`index` AS `partsList_index`, `partsList`.`createdAt` AS `partsList_createdAt`, `partsList`.`updatedAt` AS `partsList_updatedAt`, `partsList`.`doingProjectId` AS `partsList_doingProjectId`, `taskBoxesList`.`id` AS `taskBoxesList_id`, `taskBoxesList`.`title` AS `taskBoxesList_title`, `taskBoxesList`.`index` AS `taskBoxesList_index`, `taskBoxesList`.`createdAt` AS `taskBoxesList_createdAt`, `taskBoxesList`.`updatedAt` AS `taskBoxesList_updatedAt`, `taskBoxesList`.`groupingPartId` AS `taskBoxesList_groupingPartId`, `tasksList`.`id` AS `tasksList_id`, `tasksList`.`index` AS `tasksList_index`, `tasksList`.`title` AS `tasksList_title`, `tasksList`.`desc` AS `tasksList_desc`, `tasksList`.`taskColor` AS `tasksList_taskColor`, `tasksList`.`startDate` AS `tasksList_startDate`, `tasksList`.`endDate` AS `tasksList_endDate`, `tasksList`.`assignees` AS `tasksList_assignees`, `tasksList`.`createdAt` AS `tasksList_createdAt`, `tasksList`.`updatedAt` AS `tasksList_updatedAt`, `tasksList`.`groupingBoxId` AS `tasksList_groupingBoxId`, `checklistsList`.`id` AS `checklistsList_id`, `checklistsList`.`desc` AS `checklistsList_desc`, `checklistsList`.`isChecked` AS `checklistsList_isChecked`, `checklistsList`.`createdAt` AS `checklistsList_createdAt`, `checklistsList`.`updatedAt` AS `checklistsList_updatedAt`, `checklistsList`.`nowTaskId` AS `checklistsList_nowTaskId`, `commentsList`.`id` AS `commentsList_id`, `commentsList`.`body` AS `commentsList_body`, `commentsList`.`createdAt` AS `commentsList_createdAt`, `commentsList`.`updatedAt` AS `commentsList_updatedAt`, `commentsList`.`nowTaskId` AS `commentsList_nowTaskId`, `commentsList`.`writerId` AS `commentsList_writerId` FROM `projects` `projects` LEFT JOIN `parts` `partsList` ON `partsList`.`doingProjectId`=`projects`.`id` AND (`partsList`.`title` = :title) LEFT JOIN `task_boxes` `taskBoxesList` ON `taskBoxesList`.`groupingPartId`=`partsList`.`id` LEFT JOIN `tasks` `tasksList` ON `tasksList`.`groupingBoxId`=`taskBoxesList`.`id` LEFT JOIN `checklists` `checklistsList` ON `checklistsList`.`nowTaskId`=`tasksList`.`id` LEFT JOIN `task_comments` `commentsList` ON `commentsList`.`nowTaskId`=`tasksList`.`id` WHERE `projects`.`id` = :id ORDER BY `checklistsList`.`createdAt` ASC
ORDER BY가 멘마지막에 하나만 먹은것을 볼수있었다. 이후
.createQueryBuilder('projects')
.where('projects.id = :id', { id: projectId })
.leftJoinAndSelect('projects.partsList', 'partsList', 'partsList.title = :title', { title: part })
.leftJoinAndSelect('partsList.taskBoxesList', 'taskBoxesList')
.leftJoinAndSelect('taskBoxesList.tasksList', 'tasksList')
.leftJoinAndSelect('tasksList.checklistsList', 'checklistsList')
.leftJoinAndSelect('tasksList.commentsList', 'commentsList')
.orderBy('taskBoxesList.index', 'ASC')
.orderBy('tasksList.index', 'ASC')
.orderBy('checklistsList.createdAt', 'ASC')
// .getQuery();
.getMany();
순서를바꿧지만 적용이 되지않는것을 확인했고
order문을 하나 이상 사용하면 addOrderBy를 써야한다는것을 알았다.
.createQueryBuilder('projects')
.where('projects.id = :id', { id: projectId })
.leftJoinAndSelect('projects.partsList', 'partsList', 'partsList.title = :title', { title: part })
.leftJoinAndSelect('partsList.taskBoxesList', 'taskBoxesList')
.leftJoinAndSelect('taskBoxesList.tasksList', 'tasksList')
.leftJoinAndSelect('tasksList.checklistsList', 'checklistsList')
.leftJoinAndSelect('tasksList.commentsList', 'commentsList')
.orderBy('taskBoxesList.index', 'ASC')
.addOrderBy('tasksList.index', 'ASC')
.addOrderBy('checklistsList.createdAt', 'ASC')
// .getQuery();
.getMany();
역시 SQL마스터 송이님 최고!!
내일은 프로젝트에 기여하기 위해 무엇을 해야 하나요?
- 아직 정하진않았지만..다음주거를 땡겨서하던 배포및 지금까지 만든기능에대해서 정리및 버그픽스가 우선인거같다.
- Ngôn ngữ chính
- TypeScript
- Star
- 9
- Fork
- 3
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của codestates/Reciper-server
-
[✍️ Dev Log] 정송이 / 2021-06-16Có thể đã có người làm @lovelysi0113 đã nhận 1943 ngày trước. Đang mở@lovelysi0113/기록은 성장의 밑거름 ❄️ Dev Log
codestates/Reciper-server#254 · 1 người được giao ·
-
[✍️ Dev Log] 정송이 / 2021-06-08Có thể đã có người làm @lovelysi0113 đã nhận 1951 ngày trước. Đang mở@lovelysi0113/기록은 성장의 밑거름 ❄️ Dev Log
codestates/Reciper-server#250 · 1 bình luận · 1 người được giao ·
-
[✍️ Dev Log] 정송이 / 2021-06-07Có thể đã có người làm @lovelysi0113 đã nhận 1952 ngày trước. Đang mở@lovelysi0113/기록은 성장의 밑거름 ❄️ Dev Log
codestates/Reciper-server#245 · 2 bình luận · 1 người được giao ·
-
[✍️ Dev Log] 정송이 / 2021-06-06Có thể đã có người làm @lovelysi0113 đã nhận 1953 ngày trước. Đang mở@lovelysi0113/기록은 성장의 밑거름 ❄️ Dev Log
codestates/Reciper-server#234 · 1 người được giao ·
-
[server] [Workspace] - webRTC initial featureCó thể làm lại được @gatsukichi đã nhận 1953 ngày trước và không có pull request nào đang mở. Đang mở3h Middle server Workspace
codestates/Reciper-server#233 · 1 người được giao ·
Tất cả issue của codestates/Reciper-server
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Agenta-AI/agenta#7542 · 1 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
code quality security
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 90/100
-
feat(icons): add [solidping]Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 82/100
homarr-labs/dashboard-icons#2939 ·
Maintainer thường phản hồi trong vòng 1 ngày