-
Notifications
You must be signed in to change notification settings - Fork 113
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
충남대 BE_윤정훈 6주차 과제 (2단계 & 3단계) #216
충남대 BE_윤정훈 6주차 과제 (2단계 & 3단계) #216
Conversation
옮겨온다.
동시성 테스트 추가
ci-cd 파일 추가
Schema-hidden=true 설정을 통해 응답에서 제외했다.
API 명세 통일 작업 수행
진행한 부분 체크작업 수행
body를 반환하도록 함
사용하지 않는 예외코드 삭제
List to Page 변경
DTO로 응답 타입 변환 과정 거침
API 명세서 변경
API 수정 사항 반영
addCorsMapping 적용
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.
이와 같이 ProductPageResponse, WishProductPageResponse, GiftOrderPageResponse 를 지정하여 Page 단위로 조회를 요청하는 메서드에 대해서 페이지정보(현재 페이지, 총 페이지 수, 총 컨텐츠 수, 컨텐츠 등)를 담아 함께 반환하도록 하였습니다.
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.
Repository에서는 List -> Page 를 반환하도록 변경하여 이를 Service계층에서는 페이지정보를 바탕으로 PageResponse를 만들어 반환하도록 하였습니다.
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.
기존에 존재했던 Member 의 name 필드가 사라졌습니다
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.
WishProduct의 quantity 필드가 사라졌습니다.
누가 무엇을 몇개나? 에서 누가 무엇을?
로 명세를 변경하였고, 그 이유는 quantity가 사용되지 않는 필드임을 확인하고 삭제하기로 하였습니다.
Member 필드에 point 추가
포인트 관련 테스트 추가
포인트 API 명세 추가
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.
정훈님 안녕하세요~
3단계까지 빠르게 잘 구현해주셨네요 👍
열심히 달려가는 모습 멋있습니다!
고생많으셨습니다 :)
이번 단계 이만 머지할게요~
#### 2단계 | ||
|
||
- [X] 배포 스크립트를 작성한다. | ||
- [X] 클라이언트와 API 연동시 발생하는 CORS 문제에 대응한다. | ||
- [X] 배포하여 클라이언트와 테스트를 진행한다. | ||
|
||
#### 3단계 | ||
|
||
- [X] 포인트는 사용자별로 보유한다. | ||
- [X] 포인트 차감 방법 : 주문 요청시 사용할 포인트도 함께 전달받아 차감한다. | ||
- [X] 포인트를 충전할 수 있다. | ||
|
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.
👍 👍
.allowedOrigins("http://localhost:3000", "localhost:3000") | ||
.allowedMethods("GET", "POST", "PUT", "DELETE") | ||
.allowedHeaders("*") |
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.
allowedMethods
에 더 보충할 수 있을 것 같아요~
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.
제 경우 content-type : application/json 이라서 POST 요청임에도 preflight 요청이 발생하는 것을 확인하였습니다.
이를 허용해주기 위해서 OPTIONS 메서드를 추가해주었습니다!
@RestController | ||
@RequestMapping("/api/points") | ||
public class PointController implements PointApi { | ||
|
||
private final PointService pointService; | ||
|
||
public PointController(PointService pointService) { | ||
this.pointService = pointService; | ||
} | ||
|
||
@PostMapping | ||
public ResponseEntity<PointResponse> addPoint(@RequestAttribute("memberId") Long memberId, @Valid @RequestBody PointRequest pointRequest) { | ||
var point = pointService.addPoint(memberId, pointRequest.point()); | ||
return ResponseEntity.ok(point); | ||
} | ||
|
||
@GetMapping | ||
public ResponseEntity<PointResponse> getPoint(@RequestAttribute("memberId") Long memberId) { | ||
var point = pointService.getPoint(memberId); | ||
return ResponseEntity.ok(point); | ||
} | ||
} |
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.
잘 구현해주셨네요~
|
||
public PointResponse getPoint(Long memberId) { | ||
var member = memberRepository.findById(memberId) | ||
.orElseThrow(() -> new NotFoundElementException(memberId + "를 가진 이용자가 존재하지 않습니다.")); | ||
return PointResponse.of(member.getPoint()); | ||
} | ||
} |
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.
트랜잭션 readOnly를 적용할 수 있을 것 같아요
30eb525
into
kakao-tech-campus-2nd-step2:yunjunghun0116
과제 수행과정
아마 https:배포된 주소:3000 추가하지 않을까 싶습니다.)
추가(3단계) 과제 수행과정
API 명세 일부 변경