Skip to content

Commit c1b124f

Browse files
committed
refactor: long id를 받도록 NewsController 수정
1 parent 8a06812 commit c1b124f

3 files changed

Lines changed: 19 additions & 15 deletions

File tree

src/main/java/com/example/solidconnection/news/controller/NewsController.java

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import com.example.solidconnection.news.service.NewsQueryService;
1212
import com.example.solidconnection.security.annotation.RequireRoleAccess;
1313
import com.example.solidconnection.siteuser.domain.Role;
14-
import com.example.solidconnection.siteuser.domain.SiteUser;
1514
import jakarta.validation.Valid;
1615
import lombok.RequiredArgsConstructor;
1716
import org.springframework.http.ResponseEntity;
@@ -47,24 +46,24 @@ public ResponseEntity<NewsListResponse> findNewsBySiteUserId(
4746
@RequireRoleAccess(roles = {Role.ADMIN, Role.MENTOR})
4847
@PostMapping
4948
public ResponseEntity<NewsCommandResponse> createNews(
50-
@AuthorizedUser SiteUser siteUser,
49+
@AuthorizedUser long siteUserId,
5150
@Valid @RequestPart("newsCreateRequest") NewsCreateRequest newsCreateRequest,
5251
@RequestParam(value = "file", required = false) MultipartFile imageFile
5352
) {
54-
NewsCommandResponse newsCommandResponse = newsCommandService.createNews(siteUser.getId(), newsCreateRequest, imageFile);
53+
NewsCommandResponse newsCommandResponse = newsCommandService.createNews(siteUserId, newsCreateRequest, imageFile);
5554
return ResponseEntity.ok(newsCommandResponse);
5655
}
5756

5857
@RequireRoleAccess(roles = {Role.ADMIN, Role.MENTOR})
5958
@PutMapping("/{news-id}")
6059
public ResponseEntity<NewsCommandResponse> updateNews(
61-
@AuthorizedUser SiteUser siteUser,
60+
@AuthorizedUser long siteUserId,
6261
@PathVariable("news-id") Long newsId,
6362
@Valid @RequestPart(value = "newsUpdateRequest") NewsUpdateRequest newsUpdateRequest,
6463
@RequestParam(value = "file", required = false) MultipartFile imageFile
6564
) {
6665
NewsCommandResponse newsCommandResponse = newsCommandService.updateNews(
67-
siteUser.getId(),
66+
siteUserId,
6867
newsId,
6968
newsUpdateRequest,
7069
imageFile);
@@ -74,37 +73,37 @@ public ResponseEntity<NewsCommandResponse> updateNews(
7473
@RequireRoleAccess(roles = {Role.ADMIN, Role.MENTOR})
7574
@DeleteMapping("/{news-id}")
7675
public ResponseEntity<NewsCommandResponse> deleteNewsById(
77-
@AuthorizedUser SiteUser siteUser,
76+
@AuthorizedUser long siteUserId,
7877
@PathVariable("news-id") Long newsId
7978
) {
80-
NewsCommandResponse newsCommandResponse = newsCommandService.deleteNewsById(siteUser, newsId);
79+
NewsCommandResponse newsCommandResponse = newsCommandService.deleteNewsById(siteUserId, newsId);
8180
return ResponseEntity.ok(newsCommandResponse);
8281
}
8382

8483
@GetMapping("/{news-id}/like")
8584
public ResponseEntity<LikedNewsResponse> isNewsLiked(
86-
@AuthorizedUser SiteUser siteUser,
85+
@AuthorizedUser long siteUserId,
8786
@PathVariable("news-id") Long newsId
8887
) {
89-
LikedNewsResponse likedNewsResponse = newsLikeService.isNewsLiked(siteUser.getId(), newsId);
88+
LikedNewsResponse likedNewsResponse = newsLikeService.isNewsLiked(siteUserId, newsId);
9089
return ResponseEntity.ok(likedNewsResponse);
9190
}
9291

9392
@PostMapping("/{news-id}/like")
9493
public ResponseEntity<Void> addNewsLike(
95-
@AuthorizedUser SiteUser siteUser,
94+
@AuthorizedUser long siteUserId,
9695
@PathVariable("news-id") Long newsId
9796
) {
98-
newsLikeService.addNewsLike(siteUser.getId(), newsId);
97+
newsLikeService.addNewsLike(siteUserId, newsId);
9998
return ResponseEntity.ok().build();
10099
}
101100

102101
@DeleteMapping("/{news-id}/like")
103102
public ResponseEntity<Void> cancelNewsLike(
104-
@AuthorizedUser SiteUser siteUser,
103+
@AuthorizedUser long siteUserId,
105104
@PathVariable("news-id") Long newsId
106105
) {
107-
newsLikeService.cancelNewsLike(siteUser.getId(), newsId);
106+
newsLikeService.cancelNewsLike(siteUserId, newsId);
108107
return ResponseEntity.ok().build();
109108
}
110109
}

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import static com.example.solidconnection.common.exception.ErrorCode.INVALID_NEWS_ACCESS;
44
import static com.example.solidconnection.common.exception.ErrorCode.NEWS_NOT_FOUND;
5+
import static com.example.solidconnection.common.exception.ErrorCode.USER_NOT_FOUND;
56

67
import com.example.solidconnection.common.exception.CustomException;
78
import com.example.solidconnection.news.config.NewsProperties;
@@ -15,6 +16,7 @@
1516
import com.example.solidconnection.s3.service.S3Service;
1617
import com.example.solidconnection.siteuser.domain.Role;
1718
import com.example.solidconnection.siteuser.domain.SiteUser;
19+
import com.example.solidconnection.siteuser.repository.SiteUserRepository;
1820
import lombok.RequiredArgsConstructor;
1921
import org.springframework.stereotype.Service;
2022
import org.springframework.transaction.annotation.Transactional;
@@ -27,6 +29,7 @@ public class NewsCommandService {
2729
private final S3Service s3Service;
2830
private final NewsProperties newsProperties;
2931
private final NewsRepository newsRepository;
32+
private final SiteUserRepository siteUserRepository;
3033

3134
@Transactional
3235
public NewsCommandResponse createNews(long siteUserId, NewsCreateRequest newsCreateRequest, MultipartFile imageFile) {
@@ -77,7 +80,9 @@ private void updateThumbnail(News news, MultipartFile imageFile, Boolean resetTo
7780
}
7881

7982
@Transactional
80-
public NewsCommandResponse deleteNewsById(SiteUser siteUser, Long newsId) {
83+
public NewsCommandResponse deleteNewsById(long siteUserId, Long newsId) {
84+
SiteUser siteUser = siteUserRepository.findById(siteUserId)
85+
.orElseThrow(() -> new CustomException(USER_NOT_FOUND));
8186
News news = newsRepository.findById(newsId)
8287
.orElseThrow(() -> new CustomException(NEWS_NOT_FOUND));
8388
validatePermission(siteUser, news);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ class 소식지_삭제_테스트 {
302302
String expectedImageUrl = originNews.getThumbnailUrl();
303303

304304
// when
305-
NewsCommandResponse response = newsCommandService.deleteNewsById(user, originNews.getId());
305+
NewsCommandResponse response = newsCommandService.deleteNewsById(user.getId(), originNews.getId());
306306

307307
// then
308308
assertAll(

0 commit comments

Comments
 (0)