88import org .runnect .server .publicCourse .entity .PublicCourse ;
99import org .runnect .server .publicCourse .repository .PublicCourseRepository ;
1010import org .runnect .server .scrap .dto .request .CreateAndDeleteScrapRequestDto ;
11- import org .runnect .server .scrap .dto .response .DepartureResponse ;
12- import org .runnect .server .scrap .dto .response .GetScrapCourseResponseDto ;
13- import org .runnect .server .scrap .dto .response .ScrapResponse ;
14- import org .runnect .server .scrap .dto .response .UserResponse ;
11+ import org .runnect .server .scrap .dto .response .*;
1512import org .runnect .server .scrap .entity .Scrap ;
1613import org .runnect .server .scrap .repository .ScrapRepository ;
1714import org .runnect .server .user .entity .RunnectUser ;
@@ -32,15 +29,15 @@ public class ScrapService {
3229 private final UserStampService userStampService ;
3330
3431 @ Transactional
35- public void createAndDeleteScrap (Long userId , CreateAndDeleteScrapRequestDto request ) {
32+ public CreateAndDeleteScrapResponseDto createAndDeleteScrap (Long userId , CreateAndDeleteScrapRequestDto request ) {
3633 Scrap scrap = scrapRepository .findByUserIdAndPublicCourseId (userId , request .getPublicCourseId ()).orElse (null );
3734 RunnectUser user = userRepository .findById (userId ).orElseThrow (() -> new NotFoundUserException (ErrorStatus .NOT_FOUND_USER_EXCEPTION , ErrorStatus .NOT_FOUND_USER_EXCEPTION .getMessage ()));
35+ PublicCourse publicCourse = publicCourseRepository .findById (request .getPublicCourseId ())
36+ .orElseThrow (() -> new NotFoundException (ErrorStatus .NOT_FOUND_PUBLICCOURSE_EXCEPTION , ErrorStatus .NOT_FOUND_PUBLICCOURSE_EXCEPTION .getMessage ()));
3837 // 스크랩 생성
3938 if (request .getScrapTF () == true ) {
4039 if (scrap == null ) {
4140 // 기존 스크랩한 내역이 없을 때
42- PublicCourse publicCourse = publicCourseRepository .findById (request .getPublicCourseId ())
43- .orElseThrow (() -> new NotFoundException (ErrorStatus .NOT_FOUND_PUBLICCOURSE_EXCEPTION , ErrorStatus .NOT_FOUND_PUBLICCOURSE_EXCEPTION .getMessage ()));
4441 Scrap newScrap = Scrap .builder ()
4542 .scrapTF (true )
4643 .publicCourse (publicCourse )
@@ -60,6 +57,11 @@ public void createAndDeleteScrap(Long userId, CreateAndDeleteScrapRequestDto req
6057 else {
6158 scrap .updateScrapTF (false );
6259 }
60+
61+ // 해당 public course의 전체 스크랩 개수
62+ Long scrapCount = scrapRepository .countByPublicCourseAndScrapTFIsTrue (publicCourse );
63+
64+ return CreateAndDeleteScrapResponseDto .of (scrapCount );
6365 }
6466
6567 public GetScrapCourseResponseDto getScrapCourseByUser (Long userId ) {
0 commit comments