Skip to content

Commit 549c69d

Browse files
authored
Merge pull request #135 from Runnect/fix/#134
[Fix] createAndDeleteScrap시 스크랩 전체 개수도 반환
2 parents 68623f1 + bc88595 commit 549c69d

3 files changed

Lines changed: 28 additions & 11 deletions

File tree

src/main/java/org/runnect/server/scrap/controller/ScrapController.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,10 @@ public class ScrapController {
2121
@ResponseStatus(HttpStatus.OK)
2222
public ApiResponseDto createAndDeleteScrap(@UserId Long userId, @RequestBody @Valid final CreateAndDeleteScrapRequestDto request) {
2323

24-
scrapService.createAndDeleteScrap(userId, request);
25-
2624
if (request.getScrapTF() == true) {
27-
return ApiResponseDto.success(SuccessStatus.CREATE_SCRAP_SUCCESS);
25+
return ApiResponseDto.success(SuccessStatus.CREATE_SCRAP_SUCCESS, scrapService.createAndDeleteScrap(userId, request));
2826
}
29-
return ApiResponseDto.success(SuccessStatus.DELETE_SCRAP_SUCCESS);
27+
return ApiResponseDto.success(SuccessStatus.DELETE_SCRAP_SUCCESS, scrapService.createAndDeleteScrap(userId, request));
3028
}
3129

3230
@GetMapping("scrap/user")
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package org.runnect.server.scrap.dto.response;
2+
3+
import lombok.AccessLevel;
4+
import lombok.AllArgsConstructor;
5+
import lombok.Getter;
6+
import lombok.NoArgsConstructor;
7+
8+
@Getter
9+
@NoArgsConstructor(access = AccessLevel.PRIVATE)
10+
@AllArgsConstructor(access = AccessLevel.PRIVATE)
11+
public class CreateAndDeleteScrapResponseDto {
12+
private Long scrapCount;
13+
14+
public static CreateAndDeleteScrapResponseDto of (Long scrapCount) {
15+
return new CreateAndDeleteScrapResponseDto(scrapCount);
16+
}
17+
}

src/main/java/org/runnect/server/scrap/service/ScrapService.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,7 @@
88
import org.runnect.server.publicCourse.entity.PublicCourse;
99
import org.runnect.server.publicCourse.repository.PublicCourseRepository;
1010
import 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.*;
1512
import org.runnect.server.scrap.entity.Scrap;
1613
import org.runnect.server.scrap.repository.ScrapRepository;
1714
import 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

Comments
 (0)