Skip to content

Commit be91708

Browse files
refactor: 내 사전등록 조회 이미지 url 수정
* refactor: 사전등록 이미지 url 수정 * refactor: test code 수정
1 parent 89f0fa5 commit be91708

4 files changed

Lines changed: 60 additions & 1 deletion

File tree

backend/src/main/java/com/back/api/preregister/dto/response/PreRegisterResponse.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,21 @@ public static PreRegisterResponse from(PreRegister preRegister) {
5757
event.getTicketOpenAt()
5858
);
5959
}
60+
61+
// S3 Presigned URL을 포함한 생성자
62+
public static PreRegisterResponse from(PreRegister preRegister, String imageUrl) {
63+
Event event = preRegister.getEvent();
64+
return new PreRegisterResponse(
65+
preRegister.getId(),
66+
preRegister.getUserId(),
67+
preRegister.getEventId(),
68+
preRegister.getPreRegisterStatus(),
69+
preRegister.getCreateAt(),
70+
imageUrl,
71+
event.getTitle(),
72+
event.getEventDate(),
73+
event.getPlace(),
74+
event.getTicketOpenAt()
75+
);
76+
}
6077
}

backend/src/main/java/com/back/api/preregister/service/PreRegisterService.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
import com.back.api.preregister.dto.request.PreRegisterCreateRequest;
1313
import com.back.api.preregister.dto.response.PreRegisterResponse;
14+
import com.back.api.s3.service.S3PresignedService;
1415
import com.back.domain.event.entity.Event;
1516
import com.back.domain.event.repository.EventRepository;
1617
import com.back.domain.notification.systemMessage.PreRegisterDoneMessage;
@@ -38,6 +39,7 @@ public class PreRegisterService {
3839
private final UserRepository userRepository;
3940
private final ApplicationEventPublisher eventPublisher;
4041
private final StringRedisTemplate redisTemplate;
42+
private final S3PresignedService s3PresignedService;
4143

4244
private static final String SMS_VERIFIED_PREFIX = "SMS_VERIFIED:";
4345

@@ -122,7 +124,15 @@ public boolean isRegistered(Long eventId, Long userId) {
122124
public List<PreRegisterResponse> getMyPreRegister(Long userId) {
123125
List<PreRegister> preRegisters = preRegisterRepository.findByUser_Id(userId);
124126
return preRegisters.stream()
125-
.map(PreRegisterResponse::from)
127+
.map(preRegister -> {
128+
Event event = preRegister.getEvent();
129+
String imageUrl = null;
130+
if(event.getImageUrl() != null && !event.getImageUrl().isBlank()) {
131+
imageUrl = s3PresignedService.issueDownloadUrl(event.getImageUrl());
132+
}
133+
134+
return PreRegisterResponse.from(preRegister, imageUrl);
135+
})
126136
.toList();
127137
}
128138

backend/src/test/java/com/back/api/preregister/controller/PreRegisterControllerTest.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
import org.springframework.transaction.annotation.Transactional;
2626

2727
import com.back.api.preregister.dto.request.PreRegisterCreateRequest;
28+
import com.back.api.s3.service.S3MoveService;
29+
import com.back.api.s3.service.S3PresignedService;
2830
import com.back.domain.event.entity.Event;
2931
import com.back.domain.event.repository.EventRepository;
3032
import com.back.domain.preregister.entity.PreRegister;
@@ -80,6 +82,12 @@ class PreRegisterControllerTest {
8082
@MockitoBean
8183
private ReCaptchaService reCaptchaService;
8284

85+
@MockitoBean
86+
private S3MoveService s3MoveService;
87+
88+
@MockitoBean
89+
private S3PresignedService s3PresignedService;
90+
8391
String token;
8492

8593
private static final String DEFAULT_PHONE_NUMBER = "01012345678";
@@ -100,6 +108,13 @@ void setUp() {
100108
testEvent = EventFactory.fakePreOpenEvent();
101109
eventRepository.save(testEvent);
102110

111+
when(s3MoveService.moveImage(anyLong(), anyString()))
112+
.thenReturn("events/1/main.jpg");
113+
114+
when(s3PresignedService.issueDownloadUrl(anyString()))
115+
.thenReturn("https://s3.amazonaws.com/bucket/events/1/main.jpg?signature=xxx");
116+
117+
103118
token = testAuthHelper.issueAccessToken(testUser.user());
104119
}
105120

backend/src/test/java/com/back/api/preregister/service/PreRegisterServiceTest.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.back.api.preregister.service;
22

33
import static org.assertj.core.api.Assertions.*;
4+
import static org.mockito.Mockito.*;
45

56
import java.time.LocalDate;
67
import java.time.LocalDateTime;
@@ -14,10 +15,13 @@
1415
import org.springframework.boot.test.context.SpringBootTest;
1516
import org.springframework.data.redis.core.StringRedisTemplate;
1617
import org.springframework.test.context.ActiveProfiles;
18+
import org.springframework.test.context.bean.override.mockito.MockitoBean;
1719
import org.springframework.transaction.annotation.Transactional;
1820

1921
import com.back.api.preregister.dto.request.PreRegisterCreateRequest;
2022
import com.back.api.preregister.dto.response.PreRegisterResponse;
23+
import com.back.api.s3.service.S3MoveService;
24+
import com.back.api.s3.service.S3PresignedService;
2125
import com.back.domain.event.entity.Event;
2226
import com.back.domain.event.entity.EventCategory;
2327
import com.back.domain.event.entity.EventStatus;
@@ -59,6 +63,13 @@ class PreRegisterServiceTest {
5963
@Autowired
6064
private StringRedisTemplate redisTemplate;
6165

66+
@MockitoBean
67+
private S3MoveService s3MoveService;
68+
69+
@MockitoBean
70+
private S3PresignedService s3PresignedService;
71+
72+
6273
private static final String DEFAULT_PHONE_NUMBER = "01012345678";
6374
private static final String SMS_VERIFIED_KEY_PREFIX = "SMS_VERIFIED:";
6475

@@ -82,6 +93,12 @@ void setUp() {
8293
testEvent = EventFactory.fakePreOpenEvent();
8394
eventRepository.save(testEvent);
8495

96+
when(s3MoveService.moveImage(anyLong(), anyString()))
97+
.thenReturn("events/1/main.jpg");
98+
99+
when(s3PresignedService.issueDownloadUrl(anyString()))
100+
.thenReturn("https://s3.amazonaws.com/bucket/events/1/main.jpg?signature=xxx");
101+
85102
// 모든 테스트에서 SMS 인증 완료 상태로 시작
86103
setSmsVerified(DEFAULT_PHONE_NUMBER);
87104
}

0 commit comments

Comments
 (0)