본문 바로가기

생각정리/사이드 프로젝트

사이드 프로젝트 : 중고 거래 플랫폼 - 게시글

ERD


Controller 구성

@RestController
@RequestMapping("/api")
@RequiredArgsConstructor
public class BoardController {

    private final BoardService boardService;

    @PostMapping("/board")
    public BoardResponseDto createBoard(@RequestBody BoardRequestDto requestDto, @AuthenticationPrincipal UserDetailsImpl userDetails) {
        return boardService.createBoard(requestDto, userDetails.getUser());
    }

    @GetMapping("/board")
    public List<BoardResponseDto> getBoards() {
        return boardService.getBoards();
    }

    @GetMapping("/board/search")
    public List<BoardResponseDto> searchBoards(@RequestParam(value = "query") String query) {
        return boardService.searchBoards(query);
    }

    @GetMapping("/board/{id}")
    public BoardDetailResponseDto getBoard(@PathVariable long id) {
        return boardService.getBoard(id);
    }

    @PutMapping("/board/{id}")
    public BoardResponseDto updateBoard(@PathVariable long id, @RequestBody BoardRequestDto requestDto, @AuthenticationPrincipal UserDetailsImpl userDetails) {
        return boardService.updateBoard(id, requestDto, userDetails.getUser());
    }

    @DeleteMapping("/board/{id}")
    public ResponseEntity<MessageResponseDto> deleteBoard(@PathVariable long id, @AuthenticationPrincipal UserDetailsImpl userDetails) {
        return boardService.deleteBoard(id, userDetails.getUser());
    }

    @PostMapping("/board/like/{id}")
    public ResponseEntity<MessageResponseDto> likeBoard(@PathVariable long id, @AuthenticationPrincipal UserDetailsImpl userDetails) {
        return boardService.likeBoard(id, userDetails.getUser().getId());
    }

    @PostMapping("/board/status/{id}")
    public ResponseEntity<MessageResponseDto> statusChangeBoard(@PathVariable long id, @RequestBody BoardRequestDto requestDto, @AuthenticationPrincipal UserDetailsImpl userDetails) {
        return boardService.statusChangeBoard(id, requestDto, userDetails.getUser());
    }
}
게시글 부분은 꽤나 여러번 했던 부분이기 때문에 빠르게 넘어가고 리엑트로 결합 해볼 때 다시 확인을 해보고 문제가 있으면 수정할 예정!