1차 팀프로젝트 8회차

이동원·2024년 6월 24일

게시물 수정하기

@PutMapping
    public ResponseEntity<?> updateArticle(@RequestHeader("Authorization") String accessToken, // "Authorization" 이이름으로 String accessToken 값을 받겠다는뜻
                                           @RequestBody ArticleRequestDTO articleRequestDTO){

        TokenRecord tokenRecord = this.multiService.checkToken(accessToken);
        if(tokenRecord.isOK()){
            String username = tokenRecord.username();
            ArticleResponseDTO articleResponseDTO = this.multiService.updateArticle(username,articleRequestDTO);
            return tokenRecord.getResponseEntity(articleResponseDTO); // 니가 업데이트 한걸 봐라
        }
        return tokenRecord.getResponseEntity();
    }
@Transactional
    public ArticleResponseDTO updateArticle(String username, ArticleRequestDTO articleRequestDTO) {
        SiteUser user = userService.get(username);
        Article _article = this.articleService.get(articleRequestDTO.getArticleId());
        if (!user.getUsername().equals(_article.getAuthor().getUsername()) || !user.getRole().equals(UserRole.ADMIN)) {
            throw new IllegalArgumentException("not role");
        } else {
            Article article = this.articleService.update(_article, articleRequestDTO);
            return ArticleResponseDTO.builder()
                    .article(article)
                    .siteUser(article.getAuthor())
                    .build();
        }
    }
 public Article update(Article article, ArticleRequestDTO articleRequestDTO) {// 기존에있는 걸 찾아오고
        article.setTitle(articleRequestDTO.getTitle());
        article.setContent(articleRequestDTO.getContent());
        article.setModifyDate(LocalDateTime.now());
        return this.articleRepository.save(article);

    }

0개의 댓글