-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[feat] comment api 구현 #79
Conversation
comment를 추가하는 query를 추가했습니다.
comment model의 insert 메소드를 추가했습니다. paramArr에 무엇이 있는지 보여지도록 하는 것이 더 좋다고 생각해서 중간에 paramArr 변수로 만들어서 query에 넣었습니다.
comment router가 url 상 issue의 하위에 들어가는 것이 맞다고 생각해서 issue router의 하위로 이동했습니다. 중간에 /:issueId/comment의 path variable이 req.params에 나오지 않는 문제가 있었는데 하위 라우터를 생성할 때 mergeParams: true 옵션을 넣어주면 상위 라우터의 params들을 merge 한다는 것을 알게되었습니다.
comment select query를 추가했습니다. writer의 username도 가져오기 위해서 User table과 join을 해서 가져왔습니다.
comment model에 select 메소드를 추가했습니다. sql의 selectComment query를 이용했습니다.
comment controller read 메소드를 추가했습니다. 내부에서 commentModel.select() 메소드를 호출해서 값을 가져온 후 응답으로 보냈습니다. 중간에 오류가 있으면 500 에러를 보내도록 했습니다.
GET /api/issue/:issueId/comment로 들어오는 요청에 대해서 처리하도록 구현했습니다.
comment update query를 추가했습니다. comment_id가 같은 row의 content를 바꿔주도록 했습니다.
comment model update 메소드 추가를 했습니다. sql.updateComment를 사용했습니다.
comment controller의 update 메소드를 추가했습니다.
PATCH /api/issue/:issueId/comment/:commentId url에 대한 api를 추가했습니다.
통일성을 위해서 대문자를 소문자로 변경했습니다.
|
||
// comment | ||
insertComment: | ||
'INSERT INTO Comment(writer_id, content, write_time, is_issue_content, issue_id) VALUES (?,?,?,?,?)', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ㅋㅋㅋ user랑 comment랑 사이가 꽤 나쁜가보네용 🧐
9줄의 간격,,
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
conflict 때문에 그렇게 했었는데... 상관이 없나보네요
@@ -0,0 +1,7 @@ | |||
const router = require('express').Router({ mergeParams: true }); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
무한따봉.. 👍🏻👍🏻..
writer, | ||
content, | ||
write_teme: writeTime, | ||
is_issue_content: isIssueContent, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is_issue_content: isIssueContent
에서
isIssueContent 가 0으로 할당되는 포인트를 못찾겠어요..!
코멘트면 백에서 처리해주어야 한다고 생각했는데, 어디에 있을까요 ?
줌 실시간 질문으로 이해했습니다!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
엄청난 Issue의 늪을 건너 comment까지 구현하신 재윤님..
칭찬 스티커 100만개 드리고 싶군요..
코드가 전체적으로 매우 깔끔해서 더 좋았습니다. 👍
res.status(200).json({ insertId }); | ||
} catch (err) { | ||
console.error(err); | ||
next(createError(500)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
저번에도 비슷한 코멘트 남겼던 것 같은데 next(createError(~~~))
간단하고 좋은 방법 같습니다 👀
@@ -0,0 +1,7 @@ | |||
const router = require('express').Router({ mergeParams: true }); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
모두를 충격에 빠트린 {mergeParams: true}...
@@ -27,4 +27,8 @@ module.exports = { | |||
// comment | |||
insertComment: | |||
'INSERT INTO Comment(writer_id, content, write_time, is_issue_content, issue_id) VALUES (?,?,?,?,?)', | |||
selectComment: | |||
'SELECT Comment.comment_id, Comment.writer_id, `User`.username, Comment.content, Comment.write_time, Comment.is_issue_content, Comment.issue_id ' | |||
+ 'FROM Comment JOIN `User` ON Comment.writer_id = `User`.user_id WHERE Comment.issue_id = ?', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
User는 User
로 표현하셨는데, 이유를 여쭤 봐도 될까요?👀
@@ -18,7 +18,7 @@ const milestoneController = { | |||
const milestoneArr = await milestoneModel.select(); | |||
res | |||
.status(200) | |||
.json({ message: '마일스톤 읽기 성공', MilestoneArray: milestoneArr }); | |||
.json({ message: '마일스톤 읽기 성공', milestoneArray: milestoneArr }); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ㅎㅎ.. 감사합니다..ㅎㅎ.. 😭
comment api 구현
관련 이슈 및 위키
관련 이슈 : #20 #21 #22
내용
comment 추가 api 구현
comment 가져오기 api
comment 수정 api
Why?
comment router가 url 상 issue의 하위에 들어가는 것이 맞다고 생각해서 issue router의 하위로 이동했습니다.
중간에 /:issueId/comment의 path variable이 req.params에 나오지 않는 문제가 있었는데 하위 라우터를 생성할 때
옵션을 넣어주면 상위 라우터의 params들을 merge 한다는 것을 알게되었습니다.