diff --git a/src/main/java/ceos/backend/domain/admin/domain/AdminRole.java b/src/main/java/ceos/backend/domain/admin/domain/AdminRole.java index 2428ce0c..af3b0bd1 100644 --- a/src/main/java/ceos/backend/domain/admin/domain/AdminRole.java +++ b/src/main/java/ceos/backend/domain/admin/domain/AdminRole.java @@ -1,5 +1,27 @@ package ceos.backend.domain.admin.domain; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +import java.util.stream.Stream; + +@Getter +@RequiredArgsConstructor public enum AdminRole { - ROLE_ROOT, ROLE_ADMIN, ROLE_ANONYMOUS + ROLE_ROOT("루트"), + ROLE_ADMIN("운영진"), + ROLE_ANONYMOUS("임시"); + + @JsonValue + private final String adminRole; + + @JsonCreator + public static AdminRole parsing(String inputValue) { + return Stream.of(AdminRole.values()) + .filter(category -> category.getAdminRole().equals(inputValue)) + .findFirst() + .orElse(null); + } } diff --git a/src/main/java/ceos/backend/domain/project/domain/ProjectImageCategory.java b/src/main/java/ceos/backend/domain/project/domain/ProjectImageCategory.java index 05f515b7..81329d50 100644 --- a/src/main/java/ceos/backend/domain/project/domain/ProjectImageCategory.java +++ b/src/main/java/ceos/backend/domain/project/domain/ProjectImageCategory.java @@ -1,5 +1,26 @@ package ceos.backend.domain.project.domain; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +import java.util.stream.Stream; + +@Getter +@RequiredArgsConstructor public enum ProjectImageCategory { - PREVIEW, MAIN, DETAIL + THUMBNAIL("썸네일"), + DETAIL("상세"); + + @JsonValue + private final String projectImageCategory; + + @JsonCreator + public static ProjectImageCategory parsing(String inputValue) { + return Stream.of(ProjectImageCategory.values()) + .filter(category -> category.getProjectImageCategory().equals(inputValue)) + .findFirst() + .orElse(null); + } } diff --git a/src/main/java/ceos/backend/domain/project/domain/ProjectUrlCategory.java b/src/main/java/ceos/backend/domain/project/domain/ProjectUrlCategory.java index ec67af17..dfdcb8d3 100644 --- a/src/main/java/ceos/backend/domain/project/domain/ProjectUrlCategory.java +++ b/src/main/java/ceos/backend/domain/project/domain/ProjectUrlCategory.java @@ -1,5 +1,28 @@ package ceos.backend.domain.project.domain; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +import java.util.stream.Stream; + +@Getter +@RequiredArgsConstructor public enum ProjectUrlCategory { - SERVICE, GITHUB, BEHANCE, INSTAGRAM + SERVICE("서비스"), + GITHUB("깃허브"), + BEHANCE("비핸스"), + INSTAGRAM("인스타"); + + @JsonValue + private final String projectUrlCategory; + + @JsonCreator + public static ProjectUrlCategory parsing(String inputValue) { + return Stream.of(ProjectUrlCategory.values()) + .filter(category -> category.getProjectUrlCategory().equals(inputValue)) + .findFirst() + .orElse(null); + } } diff --git a/src/main/java/ceos/backend/domain/project/exception/.keep b/src/main/java/ceos/backend/domain/project/exception/.keep deleted file mode 100644 index e69de29b..00000000 diff --git a/src/main/java/ceos/backend/domain/project/helper/ProjectHelper.java b/src/main/java/ceos/backend/domain/project/helper/ProjectHelper.java index 5e73adb9..a1742684 100644 --- a/src/main/java/ceos/backend/domain/project/helper/ProjectHelper.java +++ b/src/main/java/ceos/backend/domain/project/helper/ProjectHelper.java @@ -44,24 +44,16 @@ public void findDuplicateProject(ProjectInfoVo projectInfoVo) { } public void validateProjectImages(List projectImageVos) { - if (projectImageVos.size() < 3) { + if (projectImageVos.size() < 2) { throw InvalidData.EXCEPTION; } - //for (ProjectImageCategory category : ProjectImageCategory.values()) { - // if (projectImageRepository.findByCategory(category).size() > 1) { - // throw InvalidData.EXCEPTION; - // } - //} - } - public void validateProjectUrls(List projectUrlVos) { - for (ProjectUrlCategory category : ProjectUrlCategory.values()) { - if (projectUrlRepository.findByCategory(category).size() > 1) { - throw InvalidData.EXCEPTION; - } - } +// if (projectImageVos.get(0).getCategory()==projectImageVos.get(1).getCategory()) { +// throw InvalidData.EXCEPTION; +// } } + public void updateImages(Project project, List projectImageVos) { for (ProjectImageVo projectImageVo : projectImageVos) { diff --git a/src/main/java/ceos/backend/domain/project/repository/ProjectImageRepository.java b/src/main/java/ceos/backend/domain/project/repository/ProjectImageRepository.java index e81d8f13..a5c32cd3 100644 --- a/src/main/java/ceos/backend/domain/project/repository/ProjectImageRepository.java +++ b/src/main/java/ceos/backend/domain/project/repository/ProjectImageRepository.java @@ -5,10 +5,8 @@ import ceos.backend.domain.project.domain.ProjectImageCategory; import org.springframework.data.jpa.repository.JpaRepository; -import java.util.List; import java.util.Optional; public interface ProjectImageRepository extends JpaRepository { Optional findByProjectAndCategory(Project project, ProjectImageCategory category); - List findByCategory(ProjectImageCategory category); } diff --git a/src/main/java/ceos/backend/domain/project/repository/ProjectMapper.java b/src/main/java/ceos/backend/domain/project/repository/ProjectMapper.java index bc180e50..9936f203 100644 --- a/src/main/java/ceos/backend/domain/project/repository/ProjectMapper.java +++ b/src/main/java/ceos/backend/domain/project/repository/ProjectMapper.java @@ -20,10 +20,6 @@ @Component public class ProjectMapper { -// public Project toEntity(AddProjectRequest addProjectRequest){ -// -// } - public GetProjectsResponse toGetProjects(Page projectList, PageInfo pageInfo) { List projectBriefInfoVos = projectList.stream() .map(ProjectBriefInfoVo::from) diff --git a/src/main/java/ceos/backend/domain/project/service/.keep b/src/main/java/ceos/backend/domain/project/service/.keep deleted file mode 100644 index e69de29b..00000000 diff --git a/src/main/java/ceos/backend/domain/project/service/ProjectService.java b/src/main/java/ceos/backend/domain/project/service/ProjectService.java index 5cc0368e..e737ec32 100644 --- a/src/main/java/ceos/backend/domain/project/service/ProjectService.java +++ b/src/main/java/ceos/backend/domain/project/service/ProjectService.java @@ -52,9 +52,6 @@ public void createProject(ProjectRequest projectRequest) { //프로젝트 이미지 검사 projectHelper.validateProjectImages(projectRequest.getProjectImages()); - //프로젝트 링크 검사 - //projectHelper.validateProjectUrls(projectRequest.getProjectUrls()); - //프로젝트 생성 final Project project = projectMapper.toEntity(projectRequest); projectRepository.save(project); @@ -79,9 +76,6 @@ public void updateProject(Long projectId, ProjectRequest projectRequest) { //프로젝트 이미지 검사 projectHelper.validateProjectImages(projectRequest.getProjectImages()); - //프로젝트 링크 검사 - //projectHelper.validateProjectUrls(projectRequest.getProjectUrls()); - //프로젝트 업데이트 project.update(projectRequest.getProjectInfoVo()); diff --git a/src/main/java/ceos/backend/domain/project/vo/ProjectBriefInfoVo.java b/src/main/java/ceos/backend/domain/project/vo/ProjectBriefInfoVo.java index be2c37c5..b3a2cc4d 100644 --- a/src/main/java/ceos/backend/domain/project/vo/ProjectBriefInfoVo.java +++ b/src/main/java/ceos/backend/domain/project/vo/ProjectBriefInfoVo.java @@ -2,10 +2,11 @@ import ceos.backend.domain.project.domain.Project; import ceos.backend.domain.project.domain.ProjectImage; +import ceos.backend.domain.project.exception.DataNotFound; import lombok.Builder; import lombok.Getter; -import static ceos.backend.domain.project.domain.ProjectImageCategory.PREVIEW; +import static ceos.backend.domain.project.domain.ProjectImageCategory.THUMBNAIL; @Getter public class ProjectBriefInfoVo { @@ -14,7 +15,7 @@ public class ProjectBriefInfoVo { private String name; private String description; private int generation; - private ProjectImage previewImage; + private ProjectImage thumbnailImage; @Builder public ProjectBriefInfoVo( @@ -22,13 +23,13 @@ public ProjectBriefInfoVo( String name, String description, int generation, - ProjectImage previewImage + ProjectImage thumbnailImage ) { this.id = id; this.name = name; this.description = description; this.generation = generation; - this.previewImage = previewImage; + this.thumbnailImage = thumbnailImage; } public static ProjectBriefInfoVo from(Project project) { @@ -37,10 +38,10 @@ public static ProjectBriefInfoVo from(Project project) { .name(project.getName()) .description(project.getDescription()) .generation(project.getGeneration()) - .previewImage(project.getProjectImages().stream() - .filter(image -> image.getCategory().equals(PREVIEW)) + .thumbnailImage(project.getProjectImages().stream() + .filter(image -> image.getCategory().equals(THUMBNAIL)) .findFirst() - .orElseThrow(null)) + .orElseThrow(() -> DataNotFound.EXCEPTION)) .build(); } }