Skip to content

Commit a170b6b

Browse files
committed
refactor: private 메서드 위치를 호출부 아래로 이동
1 parent cef3ff5 commit a170b6b

2 files changed

Lines changed: 43 additions & 43 deletions

File tree

src/main/java/com/example/solidconnection/news/service/NewsCommandService.java

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,14 @@ public NewsCommandResponse createNews(long siteUserId,NewsCreateRequest newsCrea
3636
return NewsCommandResponse.from(savedNews);
3737
}
3838

39+
private String getImageUrl(MultipartFile imageFile) {
40+
if (imageFile != null && !imageFile.isEmpty()) {
41+
UploadedFileUrlResponse uploadedFile = s3Service.uploadFile(imageFile, ImgType.NEWS);
42+
return uploadedFile.fileUrl();
43+
}
44+
return newsProperties.defaultThumbnailUrl();
45+
}
46+
3947
@Transactional
4048
public NewsCommandResponse updateNews(
4149
long siteUserId,
@@ -51,38 +59,12 @@ public NewsCommandResponse updateNews(
5159
return NewsCommandResponse.from(savedNews);
5260
}
5361

54-
@Transactional
55-
public NewsCommandResponse deleteNewsById(SiteUser siteUser, Long newsId) {
56-
News news = newsRepository.findById(newsId)
57-
.orElseThrow(() -> new CustomException(NEWS_NOT_FOUND));
58-
validatePermission(siteUser, news);
59-
deleteCustomImage(news.getThumbnailUrl());
60-
newsRepository.delete(news);
61-
return NewsCommandResponse.from(news);
62-
}
63-
64-
private String getImageUrl(MultipartFile imageFile) {
65-
if (imageFile != null && !imageFile.isEmpty()) {
66-
UploadedFileUrlResponse uploadedFile = s3Service.uploadFile(imageFile, ImgType.NEWS);
67-
return uploadedFile.fileUrl();
68-
}
69-
return newsProperties.defaultThumbnailUrl();
70-
}
71-
7262
private void validateOwnership(News news, long siteUserId) {
7363
if (news.getSiteUserId() != siteUserId) {
7464
throw new CustomException(INVALID_NEWS_ACCESS);
7565
}
7666
}
7767

78-
private void validatePermission(SiteUser currentUser, News news) {
79-
boolean isOwner = news.getSiteUserId() == currentUser.getId();
80-
boolean isAdmin = currentUser.getRole().equals(Role.ADMIN);
81-
if (!isOwner && !isAdmin) {
82-
throw new CustomException(INVALID_NEWS_ACCESS);
83-
}
84-
}
85-
8668
private void updateThumbnail(News news, MultipartFile imageFile, Boolean resetToDefaultImage) {
8769
if (Boolean.TRUE.equals(resetToDefaultImage)) {
8870
deleteCustomImage(news.getThumbnailUrl());
@@ -95,6 +77,24 @@ else if (imageFile != null && !imageFile.isEmpty()) {
9577
}
9678
}
9779

80+
@Transactional
81+
public NewsCommandResponse deleteNewsById(SiteUser siteUser, Long newsId) {
82+
News news = newsRepository.findById(newsId)
83+
.orElseThrow(() -> new CustomException(NEWS_NOT_FOUND));
84+
validatePermission(siteUser, news);
85+
deleteCustomImage(news.getThumbnailUrl());
86+
newsRepository.delete(news);
87+
return NewsCommandResponse.from(news);
88+
}
89+
90+
private void validatePermission(SiteUser currentUser, News news) {
91+
boolean isOwner = news.getSiteUserId() == currentUser.getId();
92+
boolean isAdmin = currentUser.getRole().equals(Role.ADMIN);
93+
if (!isOwner && !isAdmin) {
94+
throw new CustomException(INVALID_NEWS_ACCESS);
95+
}
96+
}
97+
9898
private void deleteCustomImage(String imageUrl) {
9999
if (!newsProperties.defaultThumbnailUrl().equals(imageUrl)) {
100100
s3Service.deletePostImage(imageUrl);

src/test/java/com/example/solidconnection/news/service/NewsCommandServiceTest.java

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,10 @@ class 소식지_생성_테스트 {
8383
}
8484
}
8585

86+
private NewsCreateRequest createNewsCreateRequest() {
87+
return new NewsCreateRequest("제목", "설명", "https://youtu.be/test");
88+
}
89+
8690
@Nested
8791
class 소식지_수정_테스트 {
8892

@@ -275,6 +279,19 @@ void setUp() {
275279
}
276280
}
277281

282+
private NewsUpdateRequest createNewsUpdateRequest(String title, String description, String url, Boolean resetToDefaultImage) {
283+
return new NewsUpdateRequest(title, description, url, resetToDefaultImage);
284+
}
285+
286+
private MockMultipartFile createImageFile() {
287+
return new MockMultipartFile(
288+
"image",
289+
"test.jpg",
290+
"image/jpeg",
291+
"test image content".getBytes()
292+
);
293+
}
294+
278295
@Nested
279296
class 소식지_삭제_테스트 {
280297

@@ -295,21 +312,4 @@ class 소식지_삭제_테스트 {
295312
);
296313
}
297314
}
298-
299-
private NewsCreateRequest createNewsCreateRequest() {
300-
return new NewsCreateRequest("제목", "설명", "https://youtu.be/test");
301-
}
302-
303-
private NewsUpdateRequest createNewsUpdateRequest(String title, String description, String url, Boolean resetToDefaultImage) {
304-
return new NewsUpdateRequest(title, description, url, resetToDefaultImage);
305-
}
306-
307-
private MockMultipartFile createImageFile() {
308-
return new MockMultipartFile(
309-
"image",
310-
"test.jpg",
311-
"image/jpeg",
312-
"test image content".getBytes()
313-
);
314-
}
315315
}

0 commit comments

Comments
 (0)