[BE] postType에 왜 자꾸 다른게 들어가나요?

Tags
Back
Person
Status
Done
문제가 발생한 기능
생성 일시
2024/12/02 04:29
자꾸 postTypecontent인 하이룽이 들어간다..
{ "timestamp": "2024-10-23T15:43:30.230+00:00", "status": 500, "error": "Internal Server Error", "trace": "java.lang.IllegalArgumentException: No enum constant com.develop_ping.union.post.domain.PostType.하이룽\n\tat java.base/java.lang.Enum.valueOf(Enum.java:273)\n\tat ... "message": "No enum constant com.develop_ping.union.post.domain.PostType.하이룽", "path": "/board/FREE" }
JSON
복사
PostController
@PostMapping("/{boardType}") public ResponseEntity<PostCreationResponse> createPost(@PathVariable("boardType") String type, @RequestBody PostCreateRequest request) { log.info("[ CALL: PostController.createPost() ]"); // TODO: @RequestHeader("Authorization")로 토큰 받기 String token = "token"; PostCreationCommand command = request.toCommand(token, type); PostCreationResponse response = postService.createPost(command).toResponse(); return ResponseEntity.status(HttpStatus.CREATED).body(response); }
Java
복사
컨트롤러 로직이 바뀌었기 때문에 컨트롤러에서 문제가 발생할 것 같다고 생각했었다.
request를 command로 매핑해주는 작업에서 문제가 생길 확률이 500%라고 생각해서 여기저기 로그 범벅을 만들어봤다.
근데… 매핑은 잘 된다….
뭐지..
DTO 내부 정적 팩토리 메소드도 정상적으로 잘 작동한다
근데 왜 자꾸 boardType에 content가 들어가냐고….
서비스에는 그냥 객체 저장 로직밖에 없는디
Post (Entity)
public static Post of(PostCreationCommand command, User user, String thumbnail) { return Post.builder() .title(command.getTitle()) .content(command.getContent()) .type(PostType.valueOf(command.getContent().toUpperCase())) .thumbnail(thumbnail) .views(0) .user(user) .build(); }
Java
복사
문제는 의외의 곳에서 발견됐다…
Post entity에서 생겼었는데….
.type(PostType.valueOf(command.getContent().toUpperCase())) ← 바로 이 부분!!!!
객체를 생성할 때 type에다가 getContent를 넣으니까 content가 들어가지…..
암튼..
에러 해결!