스파르타코딩클럽/항해99

항해99 6기 DAY 42 TIL _ 22.04.17

예령 : ) 2022. 4. 19. 06:25

내일 할 일

변수명 변경하기

리턴 값 실패 시 Bad Request 줘보기

소셜로그인 (카카오 로그인 다시 공부)

무한 스크롤 (백에서는 페이징처리만 해주고, 전체 게시글 개수랑 총 페이지 수만 보내주면 된다!)

 

PostLike model에 post를 ManyToOne으로 연결해놓고, Post가 지워질 때 그 게시글 안에 있는 좋아요의 개수도 함께 지우기 위해 cachecade type ALL 을 사용했다. 그런데, 좋아요를 한 번 누르고 한 번 더 눌렀을 때 원래 좋아요만 취소가 됐어야 하는데, 그 게시글 전체가 삭제가 돼서 cachecade 를 지우고 Post Delete에 로직을 추가하였다.

 

ResponseEntity 실험 중

 

TEST 1 (status set)

@PostMapping("/api/write")
    public ResponseEntity<String> upload(
            @RequestParam("postTitle") String postTitle,
            @RequestParam("postContents") String postContents,
            @RequestParam(value = "imageUrl") MultipartFile multipartFile,
            @RequestParam("price") int price,
            @RequestParam("category") String category,
            @AuthenticationPrincipal UserDetailsImpl userDetails
    ) throws IOException
    {
        String imageUrl = S3Uploader.upload(multipartFile, "static");

        PostRequestDto postRequestDto = new PostRequestDto(postTitle, postContents, imageUrl, price, category);

//        StatusMessage statusMessage = new StatusMessage();
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.add("status","200");
        httpHeaders.setContentType(new MediaType("application", "json", Charset.forName("UTF-8")));
//        statusMessage.setStatus(StatusMessage.StatusEnum.OK);
//        statusMessage.setData(null);
        postService.createPost(postRequestDto, userDetails.getUser());
        return new ResponseEntity<>("status set", httpHeaders, HttpStatus.OK);
}

 

결과

TEST2

    @PostMapping("/api/write")
    public ResponseEntity<String> upload(
            @RequestParam("postTitle") String postTitle,
            @RequestParam("postContents") String postContents,
            @RequestParam(value = "imageUrl") MultipartFile multipartFile,
            @RequestParam("price") int price,
            @RequestParam("category") String category,
            @AuthenticationPrincipal UserDetailsImpl userDetails
    ) throws IOException
    {
        String imageUrl = S3Uploader.upload(multipartFile, "static");

        PostRequestDto postRequestDto = new PostRequestDto(postTitle, postContents, imageUrl, price, category);

//        StatusMessage statusMessage = new StatusMessage();
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.add("status","200");
        httpHeaders.setContentType(new MediaType("application", "json", Charset.forName("UTF-8")));
//        statusMessage.setStatus(StatusMessage.StatusEnum.OK);
//        statusMessage.setData(null);
        postService.createPost(postRequestDto, userDetails.getUser());
        return new ResponseEntity<>("200", httpHeaders, HttpStatus.OK);
}

 

결과

 

TEST 3

@PostMapping("/api/write")
    public ResponseEntity<String> upload(
            @RequestParam("postTitle") String postTitle,
            @RequestParam("postContents") String postContents,
            @RequestParam(value = "imageUrl") MultipartFile multipartFile,
            @RequestParam("price") int price,
            @RequestParam("category") String category,
            @AuthenticationPrincipal UserDetailsImpl userDetails
    ) throws IOException
    {
        String imageUrl = S3Uploader.upload(multipartFile, "static");

        PostRequestDto postRequestDto = new PostRequestDto(postTitle, postContents, imageUrl, price, category);

//        StatusMessage statusMessage = new StatusMessage();
//        HttpHeaders httpHeaders = new HttpHeaders();
//        httpHeaders.add("status","200");
//        httpHeaders.setContentType(new MediaType("application", "json", Charset.forName("UTF-8")));
//        statusMessage.setStatus(StatusMessage.StatusEnum.OK);
//        statusMessage.setData(null);
        postService.createPost(postRequestDto, userDetails.getUser());
        return ResponseEntity.status(201)
                .header("status","201")
                .body("status set");
}

 

결과

com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: B9R4BME59K8CR165; S3 Extended Request ID: YL9Xlm5IcsLbpCElU3MqyL3gDhN5i09tqCNw3mgFCapSLQID9vCHAcxKeyjf8oHaPfjq8lsl7JA=)

오류 메세지