feat : Delete Article Controller, Service, Repository Implement. Entity add cascade
This commit is contained in:
@@ -28,4 +28,9 @@ public class ArticleController {
|
||||
public ArticleResponse createArticle(@AuthenticationPrincipal UserAuth userAuth, @Valid @RequestBody Articledto articledto) {
|
||||
return articleService.createArticle(userAuth, articledto);
|
||||
}
|
||||
|
||||
@DeleteMapping("/{slug}")
|
||||
public void deleteArticle(@AuthenticationPrincipal UserAuth userAuth, @PathVariable("slug") String slug) {
|
||||
articleService.deleteArticle(userAuth, slug);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,14 +38,14 @@ public class Article extends DateEntity {
|
||||
@Column(nullable = false)
|
||||
private String body;
|
||||
|
||||
@OneToMany(mappedBy = "article", fetch = FetchType.LAZY)
|
||||
@OneToMany(mappedBy = "article", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
|
||||
private List<Tag> tagList;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(nullable = false)
|
||||
private User author;
|
||||
|
||||
@OneToMany(mappedBy = "article", fetch = FetchType.LAZY)
|
||||
@OneToMany(mappedBy = "article", fetch = FetchType.LAZY,cascade = CascadeType.ALL)
|
||||
private List<Favorite> favorites;
|
||||
|
||||
|
||||
|
||||
@@ -10,4 +10,6 @@ public interface ArticleService {
|
||||
|
||||
ArticleResponse createArticle(UserAuth userAuth, Articledto article);
|
||||
|
||||
void deleteArticle(UserAuth userAuth,String slug);
|
||||
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@@ -37,7 +38,7 @@ public class ArticleServiceImpl implements ArticleService {
|
||||
|
||||
private final FavoriteRepository favoriteRepository;
|
||||
|
||||
// TODO token을 받을수도 있음.
|
||||
// token을 받을수도 안 받을수도 있음.
|
||||
@Override
|
||||
public ArticleResponse getArticle(UserAuth userAuth, String slug) {
|
||||
Optional<Article> article = articleRepository.findAll().stream().filter(findArticle -> findArticle.getSlug().equals(slug)).findAny();
|
||||
@@ -63,6 +64,16 @@ public class ArticleServiceImpl implements ArticleService {
|
||||
return convertDtoWithUser(articleEntity, userAuth);
|
||||
}
|
||||
|
||||
public void deleteArticle(UserAuth userAuth,String slug){
|
||||
Stream<Article> articles = articleRepository.findAll().stream().filter(findArticle -> findArticle.getSlug().equals(slug));
|
||||
for(Article article : articles.toList()){
|
||||
if(article.getAuthor().getUsername().equals(userAuth.getUsername())){
|
||||
System.out.println(article.getId());
|
||||
articleRepository.delete(article);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private String initSlug(String title) {
|
||||
return title.toLowerCase().replace(' ', '-');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user