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주차 과제(step 0) #82

Open
wants to merge 18 commits into
base: student-p
Choose a base branch
from

Conversation

student-p
Copy link

코드 수정 없이 가져왔습니다

wotjd243 and others added 18 commits June 24, 2024 08:00
구현할 기능 정의
id설정부분을 사용자가 접근하지 못하도록 수정
상품 수정 메서드에서 PutMapping으로 수정
상품 삭제 메서드에서 DeleteMapping으로 수정
step2구현을 위한 필요 기능 정의
form데이터가 정상적으로 받아지지 않아서
record에서 일반 클래스로 변경
json을 반환하지 않고 데이터를 html에 랜더링 해서 반환한다

상품의 조회,추가,수정,삭제 기능도 화면상에서 form데이터를 제출하면 가능하도록 변경
step3 구현에 필요한 요구사항 정의

기존에 저장하던 hashMap에서 h2데이터베이스로 저장소를 변경한다.
이를 위해 jdbcTemplate를 이용한다.
cost값이 음수로 되지 않도록 수정
기존 hsahMap에서 데이터베이스로 저장소 변경
lit2020 added a commit to lit2020/spring-gift-wishlist that referenced this pull request Jul 1, 2024
* docs: README 작성

* feat(Product): 상품 클래스 생성

* feat(ProductController): 모든 상품 조회 기능

* feat(ProductController): ID로 상품 조회 기능

* feat(ProductController): 상품 추가 기능

* feat(ProductController): 상품 삭제 기능

* feat(ProductController): 상품 정보 수정 기능

* docs: README 파일에 STEP2 기능 추가

* feat(productManagement.html): 관리자 페이지 템플릿 구현

* feat(ProductViewController): admin 페이지 상품 전체 조회 기능

* feat(productForm.html): 상품 등록, 수정 폼 구현

* feat(ProductViewController): 상품 등록, 수정 기능 구현

* feat(productForm.html): 상품 등록, 수정 기능 구현

* feat(productForm.html): 상품 삭제 기능 구현

* fix(ProductViewController): 중복 ID 상품 add 시도 후 상품 수정 페이지로 리다이렉션 되는 버그 수정 (admin 메인 페이지로 리다이렉션)

* fix(productForm.html): 상품 추가 시 1 이상의 ID만 입력 가능하도록 수정

* chore: 데이터베이스 환경설정

* docs(README.md): step3 기능 목록 추가

* feat(Application): DB 초기화
- JdbcTemplate 사용
- id가 1이상이 되도록 DB레벨에서 강제

* feat(productRepository): 상품 레파지토리 클래스 생성
- JdbcTemplate 객체 생성
- SQL Query 준비 (바인딩 필요)

* feat(productRepository): 상품 레파지토리 클래스 DB CRUD 로직 추가

* feat(ProductController): 메모리를 레파지토리 객체로 대체
- ProductRepository 주입

* feat(ProductController): 핸들러메서드의 로직 중복 제거
- create, update, delete시 id로 상품을 검색해서 존재하는지 확인하는 로직을 isProductExists 메서드로 추출

* style: 자바 코드 컨벤션 적용

* style(README.md): 빈 줄 삭제

* refactor: Application에서 테이블 생성 쿼리 분리
- schema.sql 생성

* refactor: 프로젝트 구조 변경
- 역할에 따라 패키지 구분
nimunsang pushed a commit that referenced this pull request Jul 4, 2024
* Initial commit

* feat: set up the project

* 충남대 BE_김기웅_1주차 과제(1단계, 2단계, 3단계) (#82)

* docs: README 작성

* feat(Product): 상품 클래스 생성

* feat(ProductController): 모든 상품 조회 기능

* feat(ProductController): ID로 상품 조회 기능

* feat(ProductController): 상품 추가 기능

* feat(ProductController): 상품 삭제 기능

* feat(ProductController): 상품 정보 수정 기능

* docs: README 파일에 STEP2 기능 추가

* feat(productManagement.html): 관리자 페이지 템플릿 구현

* feat(ProductViewController): admin 페이지 상품 전체 조회 기능

* feat(productForm.html): 상품 등록, 수정 폼 구현

* feat(ProductViewController): 상품 등록, 수정 기능 구현

* feat(productForm.html): 상품 등록, 수정 기능 구현

* feat(productForm.html): 상품 삭제 기능 구현

* fix(ProductViewController): 중복 ID 상품 add 시도 후 상품 수정 페이지로 리다이렉션 되는 버그 수정 (admin 메인 페이지로 리다이렉션)

* fix(productForm.html): 상품 추가 시 1 이상의 ID만 입력 가능하도록 수정

* chore: 데이터베이스 환경설정

* docs(README.md): step3 기능 목록 추가

* feat(Application): DB 초기화
- JdbcTemplate 사용
- id가 1이상이 되도록 DB레벨에서 강제

* feat(productRepository): 상품 레파지토리 클래스 생성
- JdbcTemplate 객체 생성
- SQL Query 준비 (바인딩 필요)

* feat(productRepository): 상품 레파지토리 클래스 DB CRUD 로직 추가

* feat(ProductController): 메모리를 레파지토리 객체로 대체
- ProductRepository 주입

* feat(ProductController): 핸들러메서드의 로직 중복 제거
- create, update, delete시 id로 상품을 검색해서 존재하는지 확인하는 로직을 isProductExists 메서드로 추출

* style: 자바 코드 컨벤션 적용

* style(README.md): 빈 줄 삭제

* refactor: Application에서 테이블 생성 쿼리 분리
- schema.sql 생성

* refactor: 프로젝트 구조 변경
- 역할에 따라 패키지 구분

* Initial commit

---------

Co-authored-by: 박재성(Jason) <[email protected]>
nimunsang pushed a commit that referenced this pull request Jul 7, 2024
* Initial commit

* feat: set up the project

* 충남대 BE_김기웅_1주차 과제(1단계, 2단계, 3단계) (#82)

* docs: README 작성

* feat(Product): 상품 클래스 생성

* feat(ProductController): 모든 상품 조회 기능

* feat(ProductController): ID로 상품 조회 기능

* feat(ProductController): 상품 추가 기능

* feat(ProductController): 상품 삭제 기능

* feat(ProductController): 상품 정보 수정 기능

* docs: README 파일에 STEP2 기능 추가

* feat(productManagement.html): 관리자 페이지 템플릿 구현

* feat(ProductViewController): admin 페이지 상품 전체 조회 기능

* feat(productForm.html): 상품 등록, 수정 폼 구현

* feat(ProductViewController): 상품 등록, 수정 기능 구현

* feat(productForm.html): 상품 등록, 수정 기능 구현

* feat(productForm.html): 상품 삭제 기능 구현

* fix(ProductViewController): 중복 ID 상품 add 시도 후 상품 수정 페이지로 리다이렉션 되는 버그 수정 (admin 메인 페이지로 리다이렉션)

* fix(productForm.html): 상품 추가 시 1 이상의 ID만 입력 가능하도록 수정

* chore: 데이터베이스 환경설정

* docs(README.md): step3 기능 목록 추가

* feat(Application): DB 초기화
- JdbcTemplate 사용
- id가 1이상이 되도록 DB레벨에서 강제

* feat(productRepository): 상품 레파지토리 클래스 생성
- JdbcTemplate 객체 생성
- SQL Query 준비 (바인딩 필요)

* feat(productRepository): 상품 레파지토리 클래스 DB CRUD 로직 추가

* feat(ProductController): 메모리를 레파지토리 객체로 대체
- ProductRepository 주입

* feat(ProductController): 핸들러메서드의 로직 중복 제거
- create, update, delete시 id로 상품을 검색해서 존재하는지 확인하는 로직을 isProductExists 메서드로 추출

* style: 자바 코드 컨벤션 적용

* style(README.md): 빈 줄 삭제

* refactor: Application에서 테이블 생성 쿼리 분리
- schema.sql 생성

* refactor: 프로젝트 구조 변경
- 역할에 따라 패키지 구분

* Initial commit

* docs(README.md) 2주차 과제 내용 추가
- 1주차 과제 README 토글 처리
- 2주차 1단계 요구사항 추가
- 2주차 1단계 개발 기능 추가

* chore(build.gradle): 유효성 검사를 위한 의존성 추가

* feat(Product): Product.name 필드에 유효성 검사를 위한 어노테이션 추가
-공백 name 금지
-공백 포함 15자 이하로 제한
-유효성 검사 실패 메시지 추가

* feat: 상품 이름을 최대 15자로 제한
-ProductViewController 상품 이름 유효성 검사 로직 추가

* feat(Product): 상품 이름에 사용할 수 있는 문자 제한
-알파벳, 한글, 숫자 허용
-(), [], +, -, &, /, _ 외 특수문자 사용 금지

* feat(Product): 상품명에 문자열 "카카오" 사용 제한

* docs(README): 1단계 기능 개발 완료

* feat(Product): price, imageUrl 필드에 대한 유효성 검사 추가

* feat(productForm.html): price, imageUrl 유효성 검사에 대한 유저 피드백 추가

* feat(Product): imageUrl 유효성 검사 로직 오류 수정

* feat(signup.html): 회원가입 템플릿

* feat(SignupController): 회원가입 기능 구현 중
- /signup에서 회원가입 템플릿으로 redirect
- signupRequest 클래스 생성
- 회원가입 성공 시 로그인 페이지로 리다이렉션
- 회원가입 실패 시 회원가입 페이지로 리다이렉션

* feat(User): 회원가입 기능 구현 중
- User 도메인 모델 정의

* feat(UserService): 회원가입 기능 구현 중
- registerUser 메서드 구현
- UserRepository 클래스 생성

* feat(UseerRepository): addUser 메서드 구현
- DB에 회원 정보 추가

* feat(schema.sql): 실행 시점에 user 테이블 생성

* docs(README.md): 2단계 기능 목록 추가

* fix(schema.sql): user테이블 -> users테이블
- user는 예약어 (h2 DB)

* fix(SignupController): signup 매서드 리턴을 템플릿에서 ResponseEntity로 변경

-SignupViewController 분리
-SignupResponse 클래스 생성 (DTO)

* fix(signup.html): js로 json 전송
- SignupController를 2개로 분리한 후 에러 발생 (@RequestBody와 @ModelAttribute의 차이)

* feat(UserService): registerUser의 리턴 변경
- 회원가입 성공 후 사용자 이메일을 포함한 환영메시지 리턴

* feat(LoginViewController): 클래스 생성
- 로그인 템플릿 리턴 (login.html)

* feat(login.html): 로그인 템플릿
- /login으로 POST 요청 전송

* feat(LoginRequest, LoginResponse): DTO 생성
-

* feat(LoginController): login 메서드 구현
- /login으로 들어오는 POST 요청 처리

* feat(UserService): loginUser 메서드 구현
- DB에서 유저 정보 찾아서 일치하면 토큰 리턴, 찾지 못하면 throw exception

* chore(build.gradle): JWT 의존성 추가

* feat(UserService): generateToken에서
JWT 리턴

* feat(UserRepository): email로 유저 검색
- Optional<User> 리턴

* chore(Product, User): setter 제거

* style: 코드 포매팅

* docs(README.md): 2단계 마무리

* docs(README.md): 3단계 기능 추가

* feat(wishlist.html): 위시리스트 템플릿
- 위시리스트 상품 조회

* feat(Wishlist): 위시리스트 도메인 모델

* feat(schema.sql, data.sql): 앱 실행 시점에 테이블 생성 및 초기화 (샘플 데이터 삽입)

* fix(wishlist.html) 참조 오류 수정
- item.product.name -> item.name
- item.product.price -> item.price

* feat(UserService): 토큰 인증 관련 메서드 구현

- validateToken
- extractEmailFromToken

* 토큰 관련 메서드가 3개인데... AuthService로 분리하는게 좋을지

* feat(wishlistController): 유저의 위시리스트 JSON으로 리턴

- @RequestHeader 어노테이션 사용

* 예외 구체화 및 핸들러 정의 필요

* feat(WishlistRepository): 위시리스트 레파지토리 구현

- 유저 email로 해당 유저의 wishlist에 들어있는 상품 리스트 리턴

* feat(WishlistService): 유저 이메일로 해당 유저의 위시리스트에 들어있는 상품 리스트 리턴

* feat(ProductRepository): 메서드 구현 getAllProductByIds

- 상품 id 리스트르 받아서 해당되는 상품 리스트를 리턴

* fix(Product): 상품 imageUrl에 http 허용

* chore(LoginController): 필요 없는 파라미터 삭제

* docs(README.md): 기능 업데이트

- 위시리스트 조회 기능 구현
- 위시리스트 GUI 구현 추가

* feat(WishlistController): 위시리스트에 상품 추가 API 구현

* feat(WishlistController): 위시리스트 상품 삭제 기능 구현 중

- @DeleteMapping

* feat(WishlistService): 위시리스트 상품 삭제 기능 구현

- 서비스와 레파지토리에 삭제 메서드 추가

* feat(login.html): 로그인 템플릿

* docs(README.md): 3단계 마무리

* style: 코드 포매팅

---------

Co-authored-by: 박재성(Jason) <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants