## 배경 ### 보내지 않은 필드는 지금 보이는 값을 이어 씀 - 위시 사용자 입력(`PATCH /wishlists/{id}`)과 토너먼트 후보 사용자 입력(`PATCH /tournaments/{id}/items/{itemId}`)이 같은 규칙 - 합친 결과에 이름·가격·이미지가 모두 있어야 함 | 상태 | 보내야 하는 필드 | 서버 응답 | | --- | --- | --- | | `READY` | 바꿀 필드만 | 200 | | `INCOMPLETE` | 바꿀 필드와 비어 있는 필드 | 200 | | `FAILED` | 이름·가격·이미지 전부 | 200 | | `PARSING` 또는 `refreshing` | 받지 않음 | 409 `ITEM-008` | | 바꿀 값 없음 (메모도 없음) | 없음 | 400 `ITEM-009` | - 메모만 보내면 필수값 검증·파싱 중 거부 없이 메모만 바뀜 - **이전:** 토너먼트 후보는 `FAILED` 일 때만 수정 가능 - 이제 `READY` · `INCOMPLETE` 도 입력 가능 ### 응답의 위시 id 가 요청과 다를 수 있음 - `FAILED` 위시에 입력해 정해진 상품을 내 다른 위시가 이미 가진 경우 - 요청한 위시는 남는 위시에 합쳐져 삭제 - 메모는 남는 위시로 이동 - 응답에는 남는 위시가 실림 ### 에러 코드 변경 | 코드 | 상태 | 뜻 | | --- | --- | --- | | `ITEM-007` | 400 | 이미지로 등록한 상품 새로고침. `WISH-007` 대체 | | `ITEM-008` | 409 | 파싱·새로고침 중인 상품에 입력 | | `ITEM-009` | 400 | 바꿀 값 없음 | - `WISH-007` 결번 - 서버 문구의 "토너먼트 아이템" 표현을 "토너먼트 후보"로 전환 ## 인수 조건 - 파싱 중이거나 새로고침 중인 카드는 입력 화면에 진입할 수 없음 - 상태별로 비어 있는 필수 필드를 입력하지 않으면 제출되지 않음 - 응답의 위시 id 가 요청과 다르면 요청한 카드를 목록에서 지우고 남는 위시 화면으로 이동 - `ITEM-007` · `ITEM-008` · `ITEM-009` 가 사용자 문구로 안내됨 - 토너먼트 후보 입력 진입 조건이 `READY` · `INCOMPLETE` · `FAILED` 로 확장됨 ## 참고 - 409 `ITEM-008` 은 화면에서 막은 뒤에도 상태가 바뀐 경합에 대비한 서버 방어 - #751 자동 동기화가 먼저 머지되면 카탈로그 갱신은 봇 PR 로 대체 가능 ## 연관 이슈 - #751 - TeamPiKi/core#1245
Activity