Skip to content

Commit f7657ac

Browse files
committed
hotfix: make new debug api for re-request for create font
1 parent 39b8054 commit f7657ac

File tree

3 files changed

+56
-1
lines changed

3 files changed

+56
-1
lines changed

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM openjdk:17-slim
1+
FROM --platform=$TARGETPLATFORM eclipse-temurin:17-jre-jammy
22
ARG JAR_FILE=build/libs/*.jar
33
COPY ${JAR_FILE} app.jar
44
ENTRYPOINT ["java", "-jar", "-Dspring.profiles.active=prod", "/app.jar"]

src/main/java/org/fontory/fontorybe/common/adapter/inbound/DebugController.java

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,41 @@
33
import jakarta.servlet.http.HttpServletRequest;
44
import jakarta.servlet.http.HttpServletResponse;
55
import lombok.RequiredArgsConstructor;
6+
import lombok.extern.slf4j.Slf4j;
67
import org.fontory.fontorybe.authentication.adapter.inbound.annotation.Login;
78
import org.fontory.fontorybe.authentication.application.port.CookieUtils;
89
import org.fontory.fontorybe.authentication.domain.UserPrincipal;
910
import org.fontory.fontorybe.common.application.DevTokenInitializer;
11+
import org.fontory.fontorybe.file.application.port.CloudStorageService;
12+
import org.fontory.fontorybe.font.FontCreateRequestNotificationEvent;
13+
import org.fontory.fontorybe.font.domain.Font;
1014
import org.fontory.fontorybe.font.service.dto.FontRequestProduceDto;
15+
import org.fontory.fontorybe.font.service.port.FontRepository;
1116
import org.fontory.fontorybe.font.service.port.FontRequestProducer;
17+
import org.fontory.fontorybe.member.domain.Member;
18+
import org.fontory.fontorybe.member.service.MemberLookupServiceImpl;
19+
import org.fontory.fontorybe.member.service.port.MemberRepository;
1220
import org.slf4j.MDC;
1321
import org.springframework.beans.factory.annotation.Value;
22+
import org.springframework.context.ApplicationEventPublisher;
1423
import org.springframework.web.bind.annotation.GetMapping;
24+
import org.springframework.web.bind.annotation.PostMapping;
1525
import org.springframework.web.bind.annotation.RestController;
1626

1727
import java.util.Optional;
1828

1929
import static org.fontory.fontorybe.authentication.application.AuthConstants.*;
2030

31+
@Slf4j
2132
@RestController
2233
@RequiredArgsConstructor
2334
public class DebugController {
35+
private final FontRepository fontRepository;
36+
private final CloudStorageService cloudStorageService;
37+
private final MemberLookupServiceImpl memberLookupService;
2438
private final DevTokenInitializer devTokenInitializer;
2539
private final FontRequestProducer fontRequestProducer;
40+
private final ApplicationEventPublisher eventPublisher;
2641
private final CookieUtils cookieUtils;
2742

2843
@Value("${commit.hash}")
@@ -72,4 +87,32 @@ public void login(HttpServletResponse res) {
7287
public void logout(HttpServletResponse res) {
7388
devTokenInitializer.removeTestAccessCookies(res);
7489
}
90+
91+
@PostMapping("/debug/re_request/fonts")
92+
public Boolean reRequestFonts(
93+
Long fontId,
94+
String notificationPhoneNumber
95+
) {
96+
Optional<Font> optionalFont = fontRepository.findById(fontId);
97+
if (optionalFont.isEmpty()) {
98+
return false;
99+
}
100+
101+
Font savedFont = optionalFont.get();
102+
Member member = memberLookupService.getOrThrowById(savedFont.getMemberId());
103+
104+
// SQS 재요청
105+
String fontPaperUrl = cloudStorageService.getFontPaperUrl(savedFont.getKey());
106+
fontRequestProducer.sendFontRequest(FontRequestProduceDto.from(savedFont, member, fontPaperUrl));
107+
108+
// SMS 알림을 위한 레디스에 폰번호 다시 저장
109+
if (notificationPhoneNumber != null && notificationPhoneNumber.isBlank()) {
110+
eventPublisher.publishEvent(new FontCreateRequestNotificationEvent(savedFont, notificationPhoneNumber));
111+
}
112+
113+
log.info("Response sent: Font created with ID: {}, name: {}, phone: {}",
114+
savedFont.getId(), savedFont.getName(), notificationPhoneNumber);
115+
116+
return true;
117+
}
75118
}

src/main/java/org/fontory/fontorybe/font/CoolSmsEventListener.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,16 @@ public void sendFontCreateCompleteNotificationAndRemovePhoneNumber(FontCreateCom
4545

4646
log.info("sms sent & phone number saved in redis - fontId={}, phoneNumber={}", font.getId(), phoneNumber);
4747
}
48+
49+
@Async
50+
@TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT)
51+
public void resendFontCreateRequestSavePhoneNumber(FontCreateRequestNotificationEvent e) {
52+
Font font = e.getFont();
53+
String phoneNumber = phoneNumberStorage.getPhoneNumber(font);
54+
log.info("save phone number in redis - fontId={}, phoneNumber={}", font.getId(), phoneNumber);
55+
56+
phoneNumberStorage.removePhoneNumber(font);
57+
58+
log.info("phone number saved in redis - fontId={}, phoneNumber={}", font.getId(), phoneNumber);
59+
}
4860
}

0 commit comments

Comments
 (0)