Skip to content

Commit

Permalink
#4 feat: binding result에 따른 검증 로직 컨트롤러에 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
shoeone96 committed Nov 16, 2023
1 parent 052285e commit 6701616
Showing 1 changed file with 33 additions and 1 deletion.
34 changes: 33 additions & 1 deletion src/main/java/com/example/board/controller/PostController.java
Original file line number Diff line number Diff line change
@@ -1,23 +1,55 @@
package com.example.board.controller;

import com.example.board.dto.PostDto;
import com.example.board.exception.BaseException;
import com.example.board.exception.BindingException;
import com.example.board.exception.ErrorMessage;
import com.example.board.response.Response;
import com.example.board.service.PostService;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.validation.ObjectError;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RequiredArgsConstructor
@RequestMapping("/api/v1/posts")
@RestController
public class PostController {
private final PostService postService;

@PostMapping
public Response<Long> save(@RequestBody PostDto postDto) {
public Response<Long> save(@RequestBody @Validated PostDto postDto, BindingResult bindingResult) {
bindChecking(bindingResult);
return Response.success(postService.save(postDto));
}

private static void bindChecking(BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
StringBuilder sb = new StringBuilder();
bindingResult.getAllErrors().forEach(objectError -> {

FieldError field = (FieldError) objectError;
String message = objectError.getDefaultMessage();

System.out.println("field :" + field.getField());
System.out.println("message :" + message);

sb.append("field :" + field.getField());
sb.append("message :" + message);

});

throw new BindingException(sb.toString());
}
}

}

0 comments on commit 6701616

Please sign in to comment.