Skip to content

Commit 3cf9e49

Browse files
authored
feat: 마음 기록 전면 카메라 사진 등록 기능 추가 (사진 2개 등록 가능하도록) (#89)
1 parent 078e1e8 commit 3cf9e49

File tree

5 files changed

+45
-26
lines changed

5 files changed

+45
-26
lines changed
Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,22 @@
11
package ongi.maum_log.dto;
22

33
public record MaumLogPresignedResponseDto(
4-
String presignedUrl,
5-
String fileName
4+
String frontFileName,
5+
String frontPresignedUrl,
6+
String backFileName,
7+
String backPresignedUrl
68
) {
7-
public static MaumLogPresignedResponseDto from(String presignedUrl, String fileName) {
8-
return new MaumLogPresignedResponseDto(presignedUrl, fileName);
9+
public static MaumLogPresignedResponseDto from(
10+
String frontFileName,
11+
String frontPresignedUrl,
12+
String backFileName,
13+
String backPresignedUrl
14+
) {
15+
return new MaumLogPresignedResponseDto(
16+
frontFileName,
17+
frontPresignedUrl,
18+
backFileName,
19+
backPresignedUrl
20+
);
921
}
1022
}

backend/ongi/src/main/java/ongi/maum_log/dto/MaumLogUploadRequestDto.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,10 @@
55
import ongi.maum_log.enums.Emotion;
66

77
public record MaumLogUploadRequestDto(
8-
@NotNull
9-
String fileName,
10-
11-
@NotNull
12-
String fileExtension,
13-
8+
@NotNull String frontFileName,
9+
@NotNull String backFileName,
1410
String location,
15-
1611
String comment,
17-
1812
List<Emotion> emotions
1913
) {
2014

backend/ongi/src/main/java/ongi/maum_log/entity/MaumLog.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ public class MaumLog extends BaseEntity {
2727
private Long id;
2828

2929
@Column(nullable = false, unique = true)
30-
private String fileName;
30+
private String frontFileName;
3131

32-
@Column(nullable = false)
33-
private String fileExtension;
32+
@Column(nullable = false, unique = true)
33+
private String backFileName;
3434

3535
private String location;
3636

backend/ongi/src/main/java/ongi/maum_log/repository/MaumLogRepository.java

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

1212
public interface MaumLogRepository extends JpaRepository<MaumLog, Long> {
1313

14-
boolean existsByFileName(String fileName);
14+
boolean existsByFrontFileName(String fileName);
15+
boolean existsByBackFileName(String fileName);
1516

1617
@Query(value = """
1718
SELECT DATE(created_at) AS date, COUNT(*) AS count

backend/ongi/src/main/java/ongi/maum_log/service/MaumLogService.java

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,19 @@ public class MaumLogService {
4040

4141
@Transactional
4242
public void createMaumLog(CustomUserDetails userDetails, MaumLogUploadRequestDto request) {
43-
if (!s3FileService.objectExists(DIR_NAME, request.fileName())) {
43+
if (!s3FileService.objectExists(DIR_NAME, request.frontFileName())
44+
|| !s3FileService.objectExists(DIR_NAME, request.backFileName())) {
4445
throw new IllegalArgumentException("S3에 파일 존재하지 않음");
4546
}
46-
if(maumLogRepository.existsByFileName(request.fileName())) {
47+
48+
if (maumLogRepository.existsByFrontFileName(request.frontFileName())
49+
|| maumLogRepository.existsByBackFileName(request.backFileName())) {
4750
throw new EntityAlreadyExistException("이미 업로드된 항목입니다");
4851
}
4952

5053
MaumLog maumLog = MaumLog.builder()
51-
.fileName(request.fileName())
52-
.fileExtension(request.fileExtension())
54+
.frontFileName(request.frontFileName())
55+
.backFileName(request.backFileName())
5356
.emotions(request.emotions())
5457
.comment(request.comment())
5558
.location(request.location())
@@ -62,7 +65,8 @@ public void createMaumLog(CustomUserDetails userDetails, MaumLogUploadRequestDto
6265
maumLogRepository.save(maumLog);
6366
}
6467

65-
public MaumLogCalendarDto getMaumLogCalendar(CustomUserDetails userDetails, YearMonth yearMonth) {
68+
public MaumLogCalendarDto getMaumLogCalendar(CustomUserDetails userDetails,
69+
YearMonth yearMonth) {
6670
Family family = familyRepository.findByMembersContains(userDetails.getUser().getUuid())
6771
.orElseThrow(() -> new IllegalArgumentException("가족 정보를 찾을 수 없습니다."));
6872

@@ -80,13 +84,21 @@ public MaumLogCalendarDto getMaumLogCalendar(CustomUserDetails userDetails, Year
8084
fullResult.put(date, result.getOrDefault(date, 0));
8185
}
8286

83-
return MaumLogCalendarDto.from(family.getMembers().size(), fullResult);
87+
return MaumLogCalendarDto.from(family.getMembers().size(), fullResult);
8488
}
8589

8690
public MaumLogPresignedResponseDto getPresignedPutUrl(CustomUserDetails userDetails) {
87-
String fileName = UUID.randomUUID().toString();
88-
URL presignedUrl = s3FileService.createSignedPutUrl(userDetails.getUser(), DIR_NAME,
89-
fileName);
90-
return MaumLogPresignedResponseDto.from(presignedUrl.toString(), fileName);
91+
String frontFileName = UUID.randomUUID().toString();
92+
URL frontPresignedUrl = s3FileService.createSignedPutUrl(userDetails.getUser(), DIR_NAME,
93+
frontFileName);
94+
95+
String backFileName = UUID.randomUUID().toString();
96+
URL backPresignedUrl = s3FileService.createSignedPutUrl(userDetails.getUser(), DIR_NAME,
97+
backFileName);
98+
99+
return MaumLogPresignedResponseDto.from(
100+
frontFileName, frontPresignedUrl.toString(),
101+
backFileName, backPresignedUrl.toString()
102+
);
91103
}
92104
}

0 commit comments

Comments
 (0)