Skip to content
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_이영준_2주차 과제 step2,step3 #426

Open
wants to merge 54 commits into
base: 20jcode
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
bb85df0
docs : 0단계 준비 문서 작성
20jcode Jul 1, 2024
9ccee7e
init : 이전 작업 코드 복사
20jcode Jul 1, 2024
2edaa1f
docs : step1 milestone 추가
20jcode Jul 3, 2024
963dd37
build : spring validation 추가
20jcode Jul 3, 2024
d79909e
build : spring webflux 추가
20jcode Jul 3, 2024
4dc8e45
feat : NotNull, namesize 추가
20jcode Jul 3, 2024
1ce8f4b
fix : add 에서 @RequestBody 가 없어서 생기는 500오류 해결
20jcode Jul 3, 2024
a98e47d
docs : 작업 일지 추가
20jcode Jul 4, 2024
6bfa3e5
refact : api request를 위한 공통 경로 정리
20jcode Jul 4, 2024
8c1cf2d
test : api 200 응답 테스트 추가
20jcode Jul 4, 2024
1ef4e42
refact : 모호한 변수 명 수정
20jcode Jul 4, 2024
59b5741
refact : 모호한 변수 명 수정, 공통 경로 정리+rest 하게 경로 설정
20jcode Jul 4, 2024
c1e4cee
feat : product 생성 시 name 길이 Valid 추가
20jcode Jul 4, 2024
1c68863
refact : NotNull과 size 어노테이션 중복 수정
20jcode Jul 4, 2024
9bed6ab
feat : Product 이름 테스트 코드 작성
20jcode Jul 4, 2024
dd205dc
refact : 문자열이 비어있는 경우를 위해 어노테이션 변경
20jcode Jul 4, 2024
f9637f0
test : 가격과 이미지가 비어있는 경우 테스트 추가
20jcode Jul 4, 2024
8f3fa03
feat : 상품이름 특수문자 탐색 Valid 추가
20jcode Jul 4, 2024
b11dde5
feat : 카카오 사용 Valid 추가
20jcode Jul 4, 2024
0a578c4
docs : 작업일지 업데이트
20jcode Jul 4, 2024
8fb7997
chore : 가독성을 위한 정렬
20jcode Jul 4, 2024
1f1844a
docs : milestone 추가
20jcode Jul 5, 2024
a9c327b
feat : 회원 모델 + 회원 등급 추가
20jcode Jul 5, 2024
9bdaa3d
build : JWT 의존성 추가
20jcode Jul 5, 2024
7ec1633
feat : memberRepository 추가
20jcode Jul 6, 2024
9925735
feat : memberService 추가
20jcode Jul 6, 2024
5f4d556
feat : memberController 추가
20jcode Jul 6, 2024
45ce4a6
refact : productexception HTTP status 추가
20jcode Jul 6, 2024
0caa2b3
test : memberController 테스트
20jcode Jul 6, 2024
771d69a
docs : 문서 업데이트, 수정사항 등에 대해
20jcode Jul 6, 2024
997d53c
test : 로그인 성공 테스트
20jcode Jul 6, 2024
9382b54
refact : JWT 보안 문제 수정
20jcode Jul 6, 2024
3c1c770
docs : step3 문서 생성
20jcode Jul 6, 2024
953b831
feat : 위시리스트 모델 만들기
20jcode Jul 6, 2024
3b73a9c
feat : 위시리스트 Repository 만들기
20jcode Jul 6, 2024
ab8035d
feat : 위시리스트 서비스 추가
20jcode Jul 6, 2024
ac1b086
refact : LoginToken 인증을 위해 일부 수정
20jcode Jul 6, 2024
2c3d350
refact : member Role 수정
20jcode Jul 7, 2024
dd1d339
refact : 변수명 수정
20jcode Jul 7, 2024
2b72758
fix : 버그 수정
20jcode Jul 7, 2024
98a90c2
feat : wishlist controller 추가
20jcode Jul 7, 2024
098ac44
refact : repository 규격 통일
20jcode Jul 7, 2024
c9af84d
fix : Product 테스트 통과
20jcode Jul 7, 2024
75ccd13
fix : Member 테스트 통과
20jcode Jul 7, 2024
b8f6454
refact : 클래스 이름 변경
20jcode Jul 7, 2024
f5787dd
refact : PR 반영 리펙토링
20jcode Jul 8, 2024
9f5fefb
refact : 클래스 이름 변경, 간단 주석 추가
20jcode Jul 8, 2024
d09d4ff
feat : 이메일 유효성 검사 추가, 불필요 주석 삭제
20jcode Jul 8, 2024
309efa5
test : 없는 이메일로 로그인 시도 테스트
20jcode Jul 8, 2024
59eaa34
feat : controller test helper 생성
20jcode Jul 8, 2024
3b827c2
refact : token 기반 사용자 인증 기능 수정
20jcode Jul 8, 2024
8e77209
refact : wishlist 버그 수정
20jcode Jul 8, 2024
7bb04e2
test : wishlist add 테스트 추가
20jcode Jul 8, 2024
c2b54e8
Merge branch '20jcode' into step2
20jcode Jul 16, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
refact : api request를 위한 공통 경로 정리
  • Loading branch information
20jcode committed Jul 4, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
commit 6bfa3e5ccbbe95117c22fa5ad5da1374de1663b9
31 changes: 18 additions & 13 deletions src/main/java/gift/controller/ProductController.java
Original file line number Diff line number Diff line change
@@ -9,6 +9,7 @@
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@@ -17,6 +18,7 @@
* <p>
* $/api/products
*/
@RequestMapping("/api")
@RestController
public class ProductController {

@@ -28,49 +30,52 @@ public ProductController(ProductService pm) {

/**
* 상품 전체 목록 반환
*
* @return 상품 DTO
*/
@GetMapping("/api/products")
public List<ProductDTO> getList(){
@GetMapping("/products")
public List<ProductDTO> getList() {
List<ProductDTO> dto = pm.readAll();
return dto;
}

/**
* 새로운 상품 생성
*
* @param dto id가 존재하는 상태로 입력되더라도 무시됨.
*/
@PostMapping("/api/products")
public void add(@RequestBody ProductDTO dto){
@PostMapping("/products")
public void add(@RequestBody ProductDTO dto) {
pm.create(dto);
}

/**
* 기존 상품 수정
* @param id 수정하고자 하는 상품의 id
*
* @param id 수정하고자 하는 상품의 id
* @param dto 수정하고자 하는 값 이외 null로 지정
*/
@PutMapping("/api/products")
public void update(@RequestParam("id") Long id, @RequestBody ProductDTO dto){
if(id==null){
@PutMapping("/products")
public void update(@RequestParam("id") Long id, @RequestBody ProductDTO dto) {
if (id == null) {
throw new IllegalArgumentException("id를 입력해주세요");
}
changeCheckAndUpdate(id, dto);
}

@DeleteMapping("/api/products")
public void delete(@RequestParam("id") Long id){
@DeleteMapping("/products")
public void delete(@RequestParam("id") Long id) {
pm.delete(id);
}

private void changeCheckAndUpdate(Long id, ProductDTO dto) {
if (dto.getName()!=null){
if (dto.getName() != null) {
pm.updateName(id, dto.getName());
}
if (dto.getPrice()!=null){
if (dto.getPrice() != null) {
pm.updatePrice(id, dto.getPrice());
}
if (dto.getImageUrl()!=null){
if (dto.getImageUrl() != null) {
pm.updateImageUrl(id, dto.getImageUrl());
}
}