Skip to content

Commit 1b6dd40

Browse files
authored
[Feat] 코스 상세 조회에서 작성자와 접속 유저 비교하는 필드 추가 배포 (#156)
* [Feat] 센트리 세팅 (#152) * feat: sentry 세팅 * feat: sentry 세팅 * fix: sentry 버전 수정 * fix: Sentry 설정 변경 * feat: 코스 상세 조회에서 작성자와 접속 유저 비교하는 필드 추가 (#154)
1 parent 74f9e0d commit 1b6dd40

File tree

5 files changed

+24
-16
lines changed

5 files changed

+24
-16
lines changed

build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@ dependencies {
6969
//json parser
7070
implementation 'com.nimbusds:nimbus-jose-jwt:9.12'
7171

72+
// Sentry
73+
implementation 'io.sentry:sentry-spring-boot-starter:4.3.0'
7274

7375
}
7476

src/main/java/org/runnect/server/common/advice/ControllerExceptionAdvice.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
11
package org.runnect.server.common.advice;
22

3-
import lombok.RequiredArgsConstructor;
4-
3+
import io.sentry.Sentry;
4+
import java.io.IOException;
5+
import java.util.Objects;
56
import javax.servlet.http.HttpServletRequest;
67
import javax.validation.ConstraintViolationException;
8+
import lombok.RequiredArgsConstructor;
9+
import org.runnect.server.common.constant.ErrorStatus;
10+
import org.runnect.server.common.dto.ApiResponseDto;
11+
import org.runnect.server.common.exception.BasicException;
12+
import org.runnect.server.config.slack.SlackApi;
713
import org.springframework.http.HttpStatus;
814
import org.springframework.http.ResponseEntity;
915
import org.springframework.stereotype.Component;
@@ -14,13 +20,6 @@
1420
import org.springframework.web.bind.annotation.ExceptionHandler;
1521
import org.springframework.web.bind.annotation.ResponseStatus;
1622
import org.springframework.web.bind.annotation.RestControllerAdvice;
17-
import org.runnect.server.common.dto.ApiResponseDto;
18-
import org.runnect.server.common.constant.ErrorStatus;
19-
import org.runnect.server.common.exception.BasicException;
20-
import org.runnect.server.config.slack.SlackApi;
21-
22-
import java.io.IOException;
23-
import java.util.Objects;
2423

2524
@RestControllerAdvice
2625
@Component
@@ -74,6 +73,7 @@ protected ApiResponseDto handleMissingRequestParameterException(final MissingSer
7473
@ExceptionHandler(Exception.class)
7574
protected ApiResponseDto<Object> handleException(final Exception error, final HttpServletRequest request) throws IOException {
7675
slackApi.sendAlert(error, request);
76+
Sentry.captureException(error);
7777
return ApiResponseDto.error(ErrorStatus.INTERNAL_SERVER_ERROR);
7878
}
7979

src/main/java/org/runnect/server/course/controller/CourseController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public ApiResponseDto<CourseGetByUserResponseDto> getPrivateCourseByUser(
7171
public ApiResponseDto<GetCourseDetailResponseDto> getCourseDetail(@UserId Long userId,
7272
@PathVariable Long courseId) {
7373
return ApiResponseDto.success(SuccessStatus.GET_COURSE_DETAIL_SUCCESS,
74-
courseService.getCourseDetail(courseId));
74+
courseService.getCourseDetail(courseId, userId));
7575
}
7676

7777
@PatchMapping("/{courseId}")

src/main/java/org/runnect/server/course/dto/response/GetCourseDetailResponseDto.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ public class GetCourseDetailResponseDto {
1919
private UserResponseCourseDetail user;
2020
private CourseDetailResponse course;
2121

22-
public static GetCourseDetailResponseDto from(Course course) {
22+
public static GetCourseDetailResponseDto of(Course course, Boolean isNowUser) {
2323
return new GetCourseDetailResponseDto(
2424
UserResponseCourseDetail.from(course.getRunnectUser()),
25-
CourseDetailResponse.of(course)
25+
CourseDetailResponse.of(course, isNowUser)
2626
);
2727
}
2828

@@ -51,16 +51,18 @@ public static class CourseDetailResponse {
5151
private String image;
5252
private String title;
5353
private DepartureResponse departure;
54+
private Boolean isNowUser;
5455

55-
public static CourseDetailResponse of(Course course) {
56+
public static CourseDetailResponse of(Course course, Boolean isNowUser) {
5657
return new CourseDetailResponse(
5758
course.getId(),
5859
course.getCreatedAt(),
5960
CoordinatePathConverter.pathConvertCoor(course.getPath()),
6061
course.getDistance(),
6162
course.getImage(),
6263
course.getTitle(),
63-
DepartureResponse.from(course)
64+
DepartureResponse.from(course),
65+
isNowUser
6466
);
6567
}
6668
}

src/main/java/org/runnect/server/course/service/CourseService.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,13 +113,17 @@ public CourseGetByUserResponseDto getPrivateCourseByUser(Long userId) {
113113
}
114114

115115
@Transactional(readOnly = true)
116-
public GetCourseDetailResponseDto getCourseDetail(Long courseId) {
116+
public GetCourseDetailResponseDto getCourseDetail(Long courseId, Long userId) {
117+
RunnectUser requestUser = userRepository.findById(userId)
118+
.orElseThrow(() -> new NotFoundUserException(NOT_FOUND_USER_EXCEPTION,
119+
NOT_FOUND_USER_EXCEPTION.getMessage()));
117120

118121
Course course = courseRepository.findById(courseId)
119122
.orElseThrow(() -> new NotFoundException(NOT_FOUND_COURSE_EXCEPTION,
120123
NOT_FOUND_COURSE_EXCEPTION.getMessage()));
124+
RunnectUser uploader = course.getRunnectUser();
121125

122-
return GetCourseDetailResponseDto.from(course);
126+
return GetCourseDetailResponseDto.of(course,uploader != null && uploader.equals(requestUser));
123127
}
124128

125129
@Transactional

0 commit comments

Comments
 (0)