Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,10 +1,22 @@
package ongi.maum_log.dto;

public record MaumLogPresignedResponseDto(
String presignedUrl,
String fileName
String frontFileName,
String frontPresignedUrl,
String backFileName,
String backPresignedUrl
) {
public static MaumLogPresignedResponseDto from(String presignedUrl, String fileName) {
return new MaumLogPresignedResponseDto(presignedUrl, fileName);
public static MaumLogPresignedResponseDto from(
String frontFileName,
String frontPresignedUrl,
String backFileName,
String backPresignedUrl
) {
return new MaumLogPresignedResponseDto(
frontFileName,
frontPresignedUrl,
backFileName,
backPresignedUrl
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,10 @@
import ongi.maum_log.enums.Emotion;

public record MaumLogUploadRequestDto(
@NotNull
String fileName,

@NotNull
String fileExtension,

@NotNull String frontFileName,
@NotNull String backFileName,
String location,

String comment,

List<Emotion> emotions
) {

Expand Down
6 changes: 3 additions & 3 deletions backend/ongi/src/main/java/ongi/maum_log/entity/MaumLog.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@ public class MaumLog extends BaseEntity {
private Long id;

@Column(nullable = false, unique = true)
private String fileName;
private String frontFileName;

@Column(nullable = false)
private String fileExtension;
@Column(nullable = false, unique = true)
private String backFileName;

private String location;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@

public interface MaumLogRepository extends JpaRepository<MaumLog, Long> {

boolean existsByFileName(String fileName);
boolean existsByFrontFileName(String fileName);
boolean existsByBackFileName(String fileName);

@Query(value = """
SELECT DATE(created_at) AS date, COUNT(*) AS count
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,16 +40,19 @@ public class MaumLogService {

@Transactional
public void createMaumLog(CustomUserDetails userDetails, MaumLogUploadRequestDto request) {
if (!s3FileService.objectExists(DIR_NAME, request.fileName())) {
if (!s3FileService.objectExists(DIR_NAME, request.frontFileName())
|| !s3FileService.objectExists(DIR_NAME, request.backFileName())) {
throw new IllegalArgumentException("S3에 파일 존재하지 않음");
}
if(maumLogRepository.existsByFileName(request.fileName())) {

if (maumLogRepository.existsByFrontFileName(request.frontFileName())
|| maumLogRepository.existsByBackFileName(request.backFileName())) {
throw new EntityAlreadyExistException("이미 업로드된 항목입니다");
}

MaumLog maumLog = MaumLog.builder()
.fileName(request.fileName())
.fileExtension(request.fileExtension())
.frontFileName(request.frontFileName())
.backFileName(request.backFileName())
.emotions(request.emotions())
.comment(request.comment())
.location(request.location())
Expand All @@ -62,7 +65,8 @@ public void createMaumLog(CustomUserDetails userDetails, MaumLogUploadRequestDto
maumLogRepository.save(maumLog);
}

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

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

return MaumLogCalendarDto.from(family.getMembers().size(), fullResult);
return MaumLogCalendarDto.from(family.getMembers().size(), fullResult);
}

public MaumLogPresignedResponseDto getPresignedPutUrl(CustomUserDetails userDetails) {
String fileName = UUID.randomUUID().toString();
URL presignedUrl = s3FileService.createSignedPutUrl(userDetails.getUser(), DIR_NAME,
fileName);
return MaumLogPresignedResponseDto.from(presignedUrl.toString(), fileName);
String frontFileName = UUID.randomUUID().toString();
URL frontPresignedUrl = s3FileService.createSignedPutUrl(userDetails.getUser(), DIR_NAME,
frontFileName);

String backFileName = UUID.randomUUID().toString();
URL backPresignedUrl = s3FileService.createSignedPutUrl(userDetails.getUser(), DIR_NAME,
backFileName);

return MaumLogPresignedResponseDto.from(
frontFileName, frontPresignedUrl.toString(),
backFileName, backPresignedUrl.toString()
);
}
}
Loading