fix: 게시판 등록을 JSON으로 보낸다
백엔드가 821f655에서 insert에 @RequestBody를 붙였다. 종전에는 등록만 어노테이션이 없어 form이었고 수정만 JSON이었는데, 이제 둘 다 JSON이다. 공지사항·FAQ 신규 등록이 415로 실패하던 원인이다. 같은 어긋남이 더 있는지 관리자 쓰기 API 전부를 대조했다 — 공통코드 상세·금칙어·앱 메뉴· 콘텐츠(쇼츠·만화)는 여전히 어노테이션이 없고, 꾸미기아이템·관리자 회원은 @ParameterObject라 form이 맞다. 가맹점 등록만 계약이 어긋난 채인데 호출부가 없다(등록 차단 중). Co-Authored-By: Claude Opus 5
@ec12bad8a4b166b7ed320bfba47a55cc4e80e2b4
--- lib/data/repositories/board-post-repository.ts
+++ lib/data/repositories/board-post-repository.ts
... | ... | @@ -18,14 +18,15 @@ |
| 18 | 18 |
* PUT /api/v1/mngr/bbs/{bbsId}
|
| 19 | 19 |
* DELETE /api/v1/mngr/bbs/{bbsId} (논리 삭제 — DEL_YN='Y')
|
| 20 | 20 |
* |
| 21 |
- * 아래는 백엔드 저장소(edupay-backend origin/develop f7d601a)의 실제 구현을 읽고 확인한 것이다 — |
|
| 21 |
+ * 아래는 백엔드 저장소(edupay-backend origin/develop 821f655)의 실제 구현을 읽고 확인한 것이다 — |
|
| 22 | 22 |
* MngrBbsApiController / MngrBbsServiceImpl / MngrBbsMapper.xml / PaginationUtil / CrudLogInterceptor. |
| 23 | 23 |
* |
| 24 |
- * - **쓰기 중 등록만 폼 인코딩이다.** insert에는 `@RequestBody`가 없고 update에는 있다. |
|
| 24 |
+ * - **쓰기는 모두 JSON이다.** 종전에는 등록만 `@RequestBody`가 없어 폼이었는데 821f655에서 붙었다. |
|
| 25 | 25 |
* - **작성자·수정자·삭제자는 보내지 않는다.** `CrudLogInterceptor`(MyBatis 플러그인)가 인증 |
| 26 | 26 |
* 주체에서 꺼내 자동 기록한다. 프론트가 보내도 덮어써진다. |
| 27 | 27 |
* - **`bbsCd`는 유형 코드다.** 조회가 코드관리 BBS_FAQ_CD와 조인해 이름(`bbsFaqNm`)까지 준다. |
| 28 | 28 |
* 반면 쓰기는 요청 VO에도 컨트롤러 복사에도 bbsCd가 없어 **유형이 저장되지 않는다**(보고함). |
| 29 |
+ * INSERT/UPDATE SQL에는 자리가 있어, 보내는 값은 그대로 두면 VO에 필드가 생기는 즉시 동작한다. |
|
| 29 | 30 |
* - **앱푸쉬는 끝까지 닿지 않는다.** 요청 VO·컨트롤러까지는 pushYn이 오지만 INSERT/UPDATE/SELECT |
| 30 | 31 |
* SQL 어디에도 PUSH_YN이 없다(보고함). 노출기간(START_DT·END_DT)은 이제 조회까지 온다. |
| 31 | 32 |
* - **구분 값이 없다.** 협의 중이라 화면 입력은 유지하되 조회·전송 모두 비워 둔다(사용자 확정). |
... | ... | @@ -246,7 +247,7 @@ |
| 246 | 247 |
|
| 247 | 248 |
const result = await backendFetch<null>(BOARD_BASE_PATH, {
|
| 248 | 249 |
method: 'POST', |
| 249 |
- form: buildWriteParams(boardType, input), |
|
| 250 |
+ body: buildWriteParams(boardType, input), |
|
| 250 | 251 |
accessToken: accessToken ?? undefined, |
| 251 | 252 |
cache: 'no-store', |
| 252 | 253 |
// 쓰기 API는 성공해도 `data: null`을 돌려준다(ApiResponseVO.success(null)). |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?