Skip to content

Commit 20ee4aa

Browse files
committed
Feat: 빠진 부분 추가
1 parent 96591b5 commit 20ee4aa

15 files changed

Lines changed: 71 additions & 192 deletions

Dockerfile

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
FROM gradle:8-jdk21 AS build
2+
WORKDIR /app
3+
4+
COPY build.gradle.kts settings.gradle.kts ./
5+
COPY src ./src
6+
7+
RUN gradle bootJar --no-daemon
8+
9+
FROM eclipse-temurin:21-jre
10+
WORKDIR /app
11+
12+
ENV TZ=Asia/Seoul
13+
RUN apt-get update \
14+
&& apt-get install -y tzdata \
15+
&& ln -sf /usr/share/zoneinfo/$TZ /etc/localtime \
16+
&& echo $TZ > /etc/timezone \
17+
&& rm -rf /var/lib/apt/lists/*
18+
19+
COPY --from=build /app/build/libs/notification-0.0.1-SNAPSHOT.jar .
20+
21+
EXPOSE 8086
22+
23+
ENTRYPOINT ["java", "-jar", "notification-0.0.1-SNAPSHOT.jar"]

build.gradle.kts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ dependencies {
2929
implementation("org.springframework.boot:spring-boot-starter-webmvc")
3030
implementation("org.springframework.boot:spring-boot-starter-validation")
3131
implementation("org.springframework.boot:spring-boot-starter-amqp")
32-
implementation("org.springframework.retry:spring-retry:2.0.12")
33-
implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.9")
34-
implementation("org.apache.commons:commons-text:1.14.0")
32+
implementation("org.springframework.boot:spring-boot-starter-actuator")
33+
implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:3.0.1")
34+
implementation("org.apache.commons:commons-text:1.14.0")
3535
implementation("com.google.firebase:firebase-admin:9.5.0")
3636
compileOnly("org.projectlombok:lombok")
3737
runtimeOnly("com.mysql:mysql-connector-j")
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package flipnote.notification.common;
2+
3+
import lombok.AccessLevel;
4+
import lombok.NoArgsConstructor;
5+
6+
@NoArgsConstructor(access = AccessLevel.PRIVATE)
7+
public final class HttpHeaders {
8+
9+
public static final String USER_ID = "X-User-Id";
10+
}

src/main/java/flipnote/notification/common/exception/GlobalExceptionHandler.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import org.springframework.web.bind.annotation.RestControllerAdvice;
1010

1111
import flipnote.notification.common.response.ApiResponse;
12-
import flipnote.notification.interfaces.security.UnauthorizedException;
1312
import lombok.extern.slf4j.Slf4j;
1413

1514
@Slf4j
@@ -29,17 +28,6 @@ public ResponseEntity<ApiResponse<Void>> handleBizError(BizException exception)
2928
.body(ApiResponse.error(exception.getErrorCode()));
3029
}
3130

32-
@ExceptionHandler(UnauthorizedException.class)
33-
public ResponseEntity<ApiResponse<Void>> handleUnauthorized(UnauthorizedException exception) {
34-
return ResponseEntity
35-
.status(401)
36-
.body(ApiResponse.<Void>builder()
37-
.status(401)
38-
.code("AUTH_001")
39-
.message(exception.getMessage())
40-
.build());
41-
}
42-
4331
@ExceptionHandler(Exception.class)
4432
public ResponseEntity<ApiResponse<Void>> handleGeneralError(Exception exception) {
4533
log.error("Unhandled exception occurred", exception);

src/main/java/flipnote/notification/infrastructure/config/RetryConfig.java

Lines changed: 0 additions & 9 deletions
This file was deleted.

src/main/java/flipnote/notification/interfaces/rest/NotificationController.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import org.springframework.web.bind.annotation.PathVariable;
88
import org.springframework.web.bind.annotation.PostMapping;
99
import org.springframework.web.bind.annotation.RequestBody;
10+
import org.springframework.web.bind.annotation.RequestHeader;
1011
import org.springframework.web.bind.annotation.RequestMapping;
1112
import org.springframework.web.bind.annotation.RestController;
1213

@@ -17,9 +18,8 @@
1718
import flipnote.notification.application.service.NotificationCommandService;
1819
import flipnote.notification.application.service.NotificationQueryService;
1920
import flipnote.notification.common.response.CursorPagingResponse;
21+
import flipnote.notification.common.HttpHeaders;
2022
import flipnote.notification.interfaces.rest.docs.NotificationControllerDocs;
21-
import flipnote.notification.interfaces.security.AuthenticatedUser;
22-
import flipnote.notification.interfaces.security.CurrentUser;
2323
import jakarta.validation.Valid;
2424
import lombok.RequiredArgsConstructor;
2525

@@ -36,10 +36,10 @@ public class NotificationController implements NotificationControllerDocs {
3636
@GetMapping
3737
public ResponseEntity<CursorPagingResponse<NotificationResponse>> getNotifications(
3838
@Valid @ModelAttribute NotificationListRequest req,
39-
@CurrentUser AuthenticatedUser user
39+
@RequestHeader(HttpHeaders.USER_ID) Long userId
4040
) {
4141
CursorPagingResponse<NotificationResponse> res
42-
= notificationQueryService.getNotifications(user.userId(), req);
42+
= notificationQueryService.getNotifications(userId, req);
4343

4444
return ResponseEntity.ok(res);
4545
}
@@ -48,19 +48,19 @@ public ResponseEntity<CursorPagingResponse<NotificationResponse>> getNotificatio
4848
@PostMapping("/token")
4949
public ResponseEntity<Void> registerFcmToken(
5050
@Valid @RequestBody TokenRegisterRequest req,
51-
@CurrentUser AuthenticatedUser user
51+
@RequestHeader(HttpHeaders.USER_ID) Long userId
5252
) {
53-
fcmTokenService.registerFcmToken(user.userId(), req);
53+
fcmTokenService.registerFcmToken(userId, req);
5454

5555
return ResponseEntity.status(HttpStatus.CREATED).build();
5656
}
5757

5858
@Override
5959
@PostMapping("/read-all")
6060
public ResponseEntity<Void> markAllNotificationsAsRead(
61-
@CurrentUser AuthenticatedUser user
61+
@RequestHeader(HttpHeaders.USER_ID) Long userId
6262
) {
63-
notificationCommandService.markAllNotificationsAsRead(user.userId());
63+
notificationCommandService.markAllNotificationsAsRead(userId);
6464

6565
return ResponseEntity.ok().build();
6666
}
@@ -69,9 +69,9 @@ public ResponseEntity<Void> markAllNotificationsAsRead(
6969
@PostMapping("/{notificationId}/read")
7070
public ResponseEntity<Void> markNotificationAsRead(
7171
@PathVariable("notificationId") Long notificationId,
72-
@CurrentUser AuthenticatedUser user
72+
@RequestHeader(HttpHeaders.USER_ID) Long userId
7373
) {
74-
notificationCommandService.markNotificationAsRead(user.userId(), notificationId);
74+
notificationCommandService.markNotificationAsRead(userId, notificationId);
7575

7676
return ResponseEntity.ok().build();
7777
}

src/main/java/flipnote/notification/interfaces/rest/docs/NotificationControllerDocs.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import flipnote.notification.application.dto.request.TokenRegisterRequest;
77
import flipnote.notification.application.dto.response.NotificationResponse;
88
import flipnote.notification.common.response.CursorPagingResponse;
9-
import flipnote.notification.interfaces.security.AuthenticatedUser;
109
import io.swagger.v3.oas.annotations.Operation;
1110
import io.swagger.v3.oas.annotations.tags.Tag;
1211

@@ -16,15 +15,15 @@ public interface NotificationControllerDocs {
1615
@Operation(summary = "알림 목록 조회")
1716
ResponseEntity<CursorPagingResponse<NotificationResponse>> getNotifications(
1817
NotificationListRequest req,
19-
AuthenticatedUser user
18+
Long userId
2019
);
2120

2221
@Operation(summary = "FCM 토큰 등록")
23-
ResponseEntity<Void> registerFcmToken(TokenRegisterRequest req, AuthenticatedUser user);
22+
ResponseEntity<Void> registerFcmToken(TokenRegisterRequest req, Long userId);
2423

2524
@Operation(summary = "모든 알림 읽음 처리")
26-
ResponseEntity<Void> markAllNotificationsAsRead(AuthenticatedUser user);
25+
ResponseEntity<Void> markAllNotificationsAsRead(Long userId);
2726

2827
@Operation(summary = "알림 읽음 처리")
29-
ResponseEntity<Void> markNotificationAsRead(Long notificationId, AuthenticatedUser user);
28+
ResponseEntity<Void> markNotificationAsRead(Long notificationId, Long userId);
3029
}

src/main/java/flipnote/notification/interfaces/security/AuthenticatedUser.java

Lines changed: 0 additions & 4 deletions
This file was deleted.

src/main/java/flipnote/notification/interfaces/security/AuthenticatedUserResolver.java

Lines changed: 0 additions & 45 deletions
This file was deleted.

src/main/java/flipnote/notification/interfaces/security/CurrentUser.java

Lines changed: 0 additions & 11 deletions
This file was deleted.

0 commit comments

Comments
 (0)