[클론 코딩] 네이버 카페 - (통합게시판) 게시글 삭제
2024. 6. 4. 16:51ㆍProject/Naver Cafe
생성한 일반 게시판의 게시글을 삭제하는 기능을 구현하고자 한다. 게시글 삭제 요청이 오면 요청 정보를 확인해 요청한 사용자가 해당 게시글의 작성자인지 확인하고 일치한다면 해당 게시글을 DB에서 삭제 후 결과 메시지를 반환하도록 작성할 것이다.
NormalController
package CloneCoding.NaverCafe.domain.article.normal.controller;
@Slf4j
@RestController
@RequiredArgsConstructor
@RequestMapping("/cafe/{cafe_url}")
public class NormalController {
private final NormalService normalService;
@DeleteMapping("/delete/{normal_id}")
public String delArticle(@PathVariable("cafe_url") String url,
@PathVariable("normal_id") Long id,
@RequestHeader("Authorization") String token) {
log.info("게시글 삭제 요청");
return normalService.delNormal(url, id, token);
}
}
- delArticle() : 카페 url, 게시글 id, 토큰 정보로 NormalService의 delArticle()을 호출하고 결과 메시지를 반환
NormalServiceImpl
package CloneCoding.NaverCafe.domain.article.normal.service;
import static CloneCoding.NaverCafe.message.SystemMessage.DELETE_ARTICLE_COMPLETE;
@Service
@RequiredArgsConstructor
public class NormalServiceImpl implements NormalService {
private final NormalRepository normalRepository;
private final CafeRepository cafeRepository;
private final CafeMemberRepository cafeMemberRepository;
private final IntegrateRepository integrateRepository;
private final AesUtil aesUtil;
@Override
public String delNormal(String url, Long id, String token) {
CafeMember user = checkAuth(url, token);
Normal article = normalRepository.findById(id)
.orElseThrow(() -> new NoSuchElementException("게시글 정보를 찾을 수 없습니다."));
if (!user.getAccountId().equals(article.getAccountId())) {
throw new RuntimeException("작성자일 경우 해당 게시글을 삭제할 수 있습니다.");
}
normalRepository.delete(article);
return DELETE_ARTICLE_COMPLETE.getMessage();
}
private CafeMember checkAuth(String url, String token) {
Cafe cafe = cafeRepository.findByUrl(url);
String accountId = aesUtil.aesDecode(token);
return cafeMemberRepository.findByAccountId(cafe, accountId);
}
}
- delNormal() : Normal 엔티티를 삭제하고 결과 메시지를 반환
API TEST
일반 게시글을 하나 추가한 상태에서 해당 게시글의 삭제 요청을 보내고 그 결과 기존 게시글 정보가 DB에서 삭제 된 것을 확인할 수 있다.
'Project > Naver Cafe' 카테고리의 다른 글
[클론 코딩] 네이버 카페 - 게시글 '좋아요' 등록, 취소 (0) | 2024.06.06 |
---|---|
[클론 코딩] 네이버 카페 - (통합게시판) 태그 등록, 수정(삭제) (0) | 2024.06.04 |
[클론 코딩] 네이버 카페 - (통합게시판) 게시글 읽기 (0) | 2024.06.01 |
[클론 코딩] 네이버 카페 - (통합게시판) 게시글 수정 (0) | 2024.05.31 |
[클론 코딩] 네이버 카페 - (통합게시판) 게시글 작성 (0) | 2024.05.30 |