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
Expand Up @@ -6,8 +6,8 @@
import kgu.developers.domain.file.application.response.FilePathResponse;
import kgu.developers.domain.file.application.command.FileCommandService;
import kgu.developers.domain.file.domain.FileDomain;
import kgu.developers.domain.file.domain.FileEntity;
import kgu.developers.domain.file.infrastructure.FileStorageService;
import kgu.developers.domain.file.domain.FileModel;
import kgu.developers.domain.file.infrastructure.repository.FileStorageService;
import lombok.RequiredArgsConstructor;

@Component
Expand All @@ -18,7 +18,7 @@ public class FileAdminFacade {

public FilePathResponse saveFile(MultipartFile file, FileDomain fileDomain) {
String storedPath = fileStorageService.store(file, fileDomain);
FileEntity savedFile = fileCommandService.saveFile(file, storedPath);
FileModel savedFile = fileCommandService.saveFile(file, storedPath);
return FilePathResponse.from(savedFile);
}
Comment thread
LeeHanEum marked this conversation as resolved.
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
import kgu.developers.domain.carousel.domain.Carousel;
import kgu.developers.domain.carousel.exception.CarouselNotFoundException;
import kgu.developers.domain.file.application.query.FileQueryService;
import kgu.developers.domain.file.domain.FileEntity;
import kgu.developers.domain.file.domain.FileModel;
import mock.repository.FakeCarouselRepository;
import mock.repository.FakeFileRepository;

Expand Down Expand Up @@ -48,7 +48,7 @@ private void initializeCarouselAdminFacade() {

private static void saveTestFile(FakeFileRepository fakeFileRepository) {
fakeFileRepository.save(
FileEntity.create(
FileModel.create(
"경기대학교 AI컴퓨터공학부 메인 이미지",
"/files/carousel/main_image.jpg",
1234L,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
import kgu.developers.admin.lab.presentation.request.LabCreateRequest;
import kgu.developers.admin.lab.presentation.request.LabUpdateRequest;
import kgu.developers.admin.lab.presentation.response.LabPersistResponse;
import kgu.developers.domain.file.domain.FileEntity;
import kgu.developers.domain.lab.application.command.LabCommandService;
import kgu.developers.domain.lab.application.query.LabQueryService;
import kgu.developers.domain.lab.domain.Lab;
Expand All @@ -36,7 +35,6 @@ public void init() {
new LabQueryService(fakeLabRepository)
);

fakeFileRepository.save(FileEntity.builder().id(TEST_FILE_ID).build());
fakeLabRepository.save(Lab.builder()
.name("Lab A")
.loc("8500")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import io.swagger.v3.oas.annotations.media.Schema;
import kgu.developers.domain.club.domain.Club;
import kgu.developers.domain.file.application.response.FilePathResponse;
import kgu.developers.domain.file.domain.FileEntity;
import lombok.Builder;

@Builder
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

import io.swagger.v3.oas.annotations.media.Schema;
import kgu.developers.domain.club.domain.Club;
import kgu.developers.domain.file.domain.FileEntity;
import lombok.Builder;

import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
import kgu.developers.domain.carousel.application.query.CarouselQueryService;
import kgu.developers.domain.carousel.domain.Carousel;
import kgu.developers.domain.file.application.query.FileQueryService;
import kgu.developers.domain.file.domain.FileEntity;
import mock.repository.FakeCarouselRepository;
import mock.repository.FakeFileRepository;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import java.util.List;

import kgu.developers.domain.file.application.query.FileQueryService;
import kgu.developers.domain.file.domain.FileEntity;
import mock.repository.FakeFileRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
Expand All @@ -31,8 +30,6 @@ public void init() {
new LabQueryService(fakeLabRepository),new FileQueryService(fakeFileRepository)
);

fakeFileRepository.save(FileEntity.builder().id(TEST_FILE_ID).build());

fakeLabRepository.save(
Lab.create(
"인공지능 연구실",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
import kgu.developers.domain.carousel.domain.Carousel;
import kgu.developers.domain.carousel.domain.CarouselRepository;
import kgu.developers.domain.file.application.query.FileQueryService;
import kgu.developers.domain.file.domain.FileEntity;
import kgu.developers.domain.file.domain.FileModel;
import kgu.developers.domain.file.exception.FileIdRequiredException;
import lombok.RequiredArgsConstructor;

@Service
Expand All @@ -16,7 +17,8 @@ public class CarouselCommandService {
private final CarouselRepository carouselRepository;

public Long createCarousel(Long fileId, String text, String link) {
FileEntity file = fileQueryService.getFileById(fileId);
if (fileId == null) throw new FileIdRequiredException();
FileModel file = fileQueryService.getFileById(fileId);
Carousel carousel = Carousel.create(text, link, file.getId());
return carouselRepository.save(carousel).getId();
}
Comment thread
LeeHanEum marked this conversation as resolved.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,43 +1,35 @@
package kgu.developers.domain.carousel.domain;

import static jakarta.persistence.GenerationType.IDENTITY;
import static lombok.AccessLevel.PROTECTED;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import kgu.developers.common.domain.BaseTimeEntity;
import java.time.LocalDateTime;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor(access = PROTECTED)
public class Carousel extends BaseTimeEntity {
@Id
@GeneratedValue(strategy = IDENTITY)
private Long id;

@Column(nullable = false)
public class Carousel {
private final Long id;
private String text;

@Column(nullable = false)
private String link;

@Column(nullable = false)
private Long fileId;

public static Carousel create(String text, String link, Long fileId) {
return Carousel.builder()
.text(text)
.link(link)
.fileId(fileId)
.build();
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
private LocalDateTime deletedAt;

public static Carousel create(
String text,
String link,
Long fileId
) {
return new Carousel(
null,
text,
link,
fileId,
LocalDateTime.now(),
LocalDateTime.now(),
null
);
}

public void updateText(String text) {
Expand All @@ -53,3 +45,4 @@ public void updateFileId(Long fileId) {
}
}


Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

import kgu.developers.domain.carousel.domain.Carousel;
import kgu.developers.domain.carousel.domain.CarouselRepository;
import kgu.developers.domain.carousel.infrastructure.entity.CarouselJpaEntity;
import lombok.RequiredArgsConstructor;

@Repository
Expand All @@ -16,7 +17,9 @@ public class CarouselRepositoryImpl implements CarouselRepository {

@Override
public Carousel save(Carousel carousel) {
return jpaCarouselRepository.save(carousel);
return jpaCarouselRepository.save(
CarouselJpaEntity.toEntity(carousel)
).toDomain();
}

@Override
Expand All @@ -26,11 +29,15 @@ public void deleteById(Long id) {

@Override
public List<Carousel> findAllByFileIsNotNullOrderByCreatedAtDesc() {
return jpaCarouselRepository.findAllByFileIdIsNotNullOrderByCreatedAtDesc();
return jpaCarouselRepository.findAllByFileIdIsNotNullOrderByCreatedAtDesc()
.stream()
.map(CarouselJpaEntity::toDomain)
.toList();
}

@Override
public Optional<Carousel> findById(Long id) {
return jpaCarouselRepository.findById(id);
return jpaCarouselRepository.findById(id)
.map(CarouselJpaEntity::toDomain);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

import org.springframework.data.jpa.repository.JpaRepository;

import kgu.developers.domain.carousel.domain.Carousel;
import kgu.developers.domain.carousel.infrastructure.entity.CarouselJpaEntity;

public interface JpaCarouselRepository extends JpaRepository<Carousel, Long> {
List<Carousel> findAllByFileIdIsNotNullOrderByCreatedAtDesc();
public interface JpaCarouselRepository extends JpaRepository<CarouselJpaEntity, Long> {
List<CarouselJpaEntity> findAllByFileIdIsNotNullOrderByCreatedAtDesc();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package kgu.developers.domain.carousel.infrastructure.entity;

import static jakarta.persistence.GenerationType.IDENTITY;
import static lombok.AccessLevel.PROTECTED;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import kgu.developers.common.domain.BaseTimeEntity;
import kgu.developers.domain.carousel.domain.Carousel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Entity
@Getter
@Builder
@Table(name = "carousel")
@AllArgsConstructor
@NoArgsConstructor(access = PROTECTED)
public class CarouselJpaEntity extends BaseTimeEntity {
Comment thread
LeeHanEum marked this conversation as resolved.
@Id
@GeneratedValue(strategy = IDENTITY)
private Long id;

@Column(nullable = false)
private String text;

@Column(nullable = false)
private String link;

@Column(nullable = false)
private Long fileId;

public static CarouselJpaEntity toEntity(Carousel carousel) {
return CarouselJpaEntity.builder()
.id(carousel.getId())
.text(carousel.getText())
.link(carousel.getLink())
.fileId(carousel.getFileId())
.build();
}

public Carousel toDomain() {
return new Carousel(
this.id,
this.text,
this.link,
this.fileId,
this.getCreatedAt(),
this.getUpdatedAt(),
this.getDeletedAt()
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,7 @@
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.OneToOne;
import kgu.developers.common.domain.BaseTimeEntity;
import kgu.developers.domain.file.domain.FileEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import kgu.developers.domain.file.domain.FileEntity;
import kgu.developers.domain.file.domain.FileModel;
import kgu.developers.domain.file.domain.FileRepository;
import lombok.RequiredArgsConstructor;

Expand All @@ -12,8 +12,8 @@
public class FileCommandService {
private final FileRepository fileRepository;

public FileEntity saveFile(MultipartFile file, String storedPath) {
FileEntity fileEntity = FileEntity.create(file.getOriginalFilename(), storedPath, file.getSize(),
public FileModel saveFile(MultipartFile file, String storedPath) {
FileModel fileEntity = FileModel.create(file.getOriginalFilename(), storedPath, file.getSize(),
file.getContentType());
return fileRepository.save(fileEntity);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package kgu.developers.domain.file.application.query;

import kgu.developers.domain.file.domain.FileEntity;
import kgu.developers.domain.file.domain.FileModel;
import kgu.developers.domain.file.domain.FileRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
Expand All @@ -14,14 +14,14 @@
public class FileQueryService {
private final FileRepository fileRepository;

public FileEntity getFileById(Long id) {
public FileModel getFileById(Long id) {
return fileRepository.findById(id).orElse(null);
}

public Map<Long,String> findPhysicalPathMapByIds(List<Long> ids) {
return fileRepository.findAllByIds(ids)
.stream()
.collect(Collectors.toMap(FileEntity::getId, FileEntity::getPhysicalPath));
.collect(Collectors.toMap(FileModel::getId, FileModel::getPhysicalPath));
}

public String getFilePhysicalPath(Long id) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED;

import io.swagger.v3.oas.annotations.media.Schema;
import kgu.developers.domain.file.domain.FileEntity;
import kgu.developers.domain.file.domain.FileModel;
import kgu.developers.globalutils.encryption.AesUtil;
import lombok.Builder;

Expand All @@ -15,7 +15,7 @@ public record FilePathResponse(
@Schema(description = "파일 경로", example = "/files/2025-curriculum", requiredMode = REQUIRED)
String physicalPath
) {
public static FilePathResponse from(FileEntity fileEntity) {
public static FilePathResponse from(FileModel fileEntity) {
String decryptedPath = AesUtil.decrypt(fileEntity.getPhysicalPath());
return FilePathResponse.builder()
.id(fileEntity.getId())
Expand Down
Loading