diff --git a/src/front/src/api/articleApi.js b/src/front/src/api/articleApi.js index 05657f1..0cd3a2d 100644 --- a/src/front/src/api/articleApi.js +++ b/src/front/src/api/articleApi.js @@ -54,5 +54,6 @@ function removeArticle(id) { export default { getArticles, getArticle, - postArticle + postArticle, + removeArticle } \ No newline at end of file diff --git a/src/front/src/pages/articles/Detail.vue b/src/front/src/pages/articles/Detail.vue index 5478f49..c1225d8 100644 --- a/src/front/src/pages/articles/Detail.vue +++ b/src/front/src/pages/articles/Detail.vue @@ -34,15 +34,23 @@ const result = await articleApi.getArticle.bind(this)(articleId); this.article = result.data; this.init = true; + } catch (e) { console.log(e); } }, methods: { - remove() { + async remove() { const articleId = this.$route.params.id; if(!confirm('정말 삭제하시겠습니까?')) return; + try { + await articleApi.removeArticle.bind(this)(articleId); + await this.$router.push('/articles'); + } catch (e) { + alert('문제가 발생하였습니다.'); + console.log(e); + } } } diff --git a/src/main/java/com/example/vue/domain/article/Article.java b/src/main/java/com/example/vue/domain/article/Article.java index 4534ddf..26957d2 100644 --- a/src/main/java/com/example/vue/domain/article/Article.java +++ b/src/main/java/com/example/vue/domain/article/Article.java @@ -33,9 +33,10 @@ public class Article { @LastModifiedDate private LocalDateTime updatedAt; - public Article(ArticleRequestDto articleRequestDto) { + public Article(ArticleRequestDto articleRequestDto, User user) { this.title = articleRequestDto.getTitle(); this.content = articleRequestDto.getContent(); + this.user = user; } @PrePersist diff --git a/src/main/java/com/example/vue/domain/article/ArticleController.java b/src/main/java/com/example/vue/domain/article/ArticleController.java index aa8805c..33f7a51 100644 --- a/src/main/java/com/example/vue/domain/article/ArticleController.java +++ b/src/main/java/com/example/vue/domain/article/ArticleController.java @@ -38,7 +38,9 @@ public class ArticleController { return articleService.save(articleRequestDto, user); } + @ResponseStatus(HttpStatus.OK) @DeleteMapping(value = "/{articleId}") + @Transactional public void deleteArticle(@PathVariable Long articleId, @AuthenticationPrincipal User user) { articleService.delete(articleId, user); } diff --git a/src/main/java/com/example/vue/domain/article/ArticleRequestDto.java b/src/main/java/com/example/vue/domain/article/ArticleRequestDto.java index 14a833f..371b211 100644 --- a/src/main/java/com/example/vue/domain/article/ArticleRequestDto.java +++ b/src/main/java/com/example/vue/domain/article/ArticleRequestDto.java @@ -12,4 +12,5 @@ public class ArticleRequestDto { @NotNull private String content; + } diff --git a/src/main/java/com/example/vue/domain/article/ArticleResponseDto.java b/src/main/java/com/example/vue/domain/article/ArticleResponseDto.java index b7f2460..8571798 100644 --- a/src/main/java/com/example/vue/domain/article/ArticleResponseDto.java +++ b/src/main/java/com/example/vue/domain/article/ArticleResponseDto.java @@ -1,6 +1,7 @@ package com.example.vue.domain.article; import com.example.vue.domain.user.User; +import com.example.vue.domain.user.UserResponseDto; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; @@ -12,6 +13,7 @@ public class ArticleResponseDto { private Long id; private String title; private String content; + private UserResponseDto user; @JsonProperty("isOwn") private boolean isOwn; @@ -25,5 +27,6 @@ public class ArticleResponseDto { this.createdAt = article.getCreatedAt(); this.updatedAt = article.getUpdatedAt(); this.isOwn = article.compareUser(user); + this.user = new UserResponseDto(user); } } diff --git a/src/main/java/com/example/vue/domain/article/ArticleService.java b/src/main/java/com/example/vue/domain/article/ArticleService.java index 8b07800..7e84723 100644 --- a/src/main/java/com/example/vue/domain/article/ArticleService.java +++ b/src/main/java/com/example/vue/domain/article/ArticleService.java @@ -15,7 +15,9 @@ public class ArticleService { private final ArticleRepository articleRepository; public ArticleResponseDto save(ArticleRequestDto articleRequestDto, User user) { - Article article = articleRepository.save(new Article(articleRequestDto)); + + Article article = articleRepository.save(new Article(articleRequestDto, user)); + return new ArticleResponseDto(article, user); }