Skip to content

Commit

Permalink
[refact] 프로젝트 이미지 개수 수정 (#84)
Browse files Browse the repository at this point in the history
* [feat] 프로젝트 목록 보기 기능 구현 #55

* [feat] 프로젝트 하나 보기 기능 구현 #55

* [feat] 에러 코드 작성 #55

* [add] VO 수정 #55

* [add] 도메인 수정 #55

* [add] 에러코드 추가 #55

* [feat] DTO 작성 #55

* [feat] 프로젝트 생성 API 구현 #55

* [add] repository 추가 #55

* [feat] 프로젝트 관련 메서드 작성 #55

* [feat] Vo 및 Enum 생성 #55

* [add] 에러코드 추가 #55

* [add] 에러코드 추가 #55

* [feat] 업데이트 메서드 작성 #55

* [feat] 프로젝트 수정, 삭제 API 구현 #55

* [refact] 클래스 이름 수정 #55

* [add] Security에 url 추가 #55

* [refact] 메서드 순서 변경 #55

* [add] List 초기화 #55

* [fix] 에러처리 수정 #55

* [refact] Enum 수정 #83

* [feat] 에러처리 #83

* [fix] 사용하지 않는 메서드 및 코드 삭제 #83
  • Loading branch information
suhhyun524 authored Jul 15, 2023
1 parent 312ac0d commit bdf47dd
Show file tree
Hide file tree
Showing 10 changed files with 82 additions and 35 deletions.
24 changes: 23 additions & 1 deletion src/main/java/ceos/backend/domain/admin/domain/AdminRole.java
Original file line number Diff line number Diff line change
@@ -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);
}
}
Original file line number Diff line number Diff line change
@@ -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);
}
}
Original file line number Diff line number Diff line change
@@ -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);
}
}
Empty file.
Original file line number Diff line number Diff line change
Expand Up @@ -44,24 +44,16 @@ public void findDuplicateProject(ProjectInfoVo projectInfoVo) {
}

public void validateProjectImages(List<ProjectImageVo> 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<ProjectUrlVo> 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<ProjectImageVo> projectImageVos) {

for (ProjectImageVo projectImageVo : projectImageVos) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<ProjectImage, Long> {
Optional<ProjectImage> findByProjectAndCategory(Project project, ProjectImageCategory category);
List<ProjectImage> findByCategory(ProjectImageCategory category);
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,6 @@
@Component
public class ProjectMapper {

// public Project toEntity(AddProjectRequest addProjectRequest){
//
// }

public GetProjectsResponse toGetProjects(Page<Project> projectList, PageInfo pageInfo) {
List<ProjectBriefInfoVo> projectBriefInfoVos = projectList.stream()
.map(ProjectBriefInfoVo::from)
Expand Down
Empty file.
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -79,9 +76,6 @@ public void updateProject(Long projectId, ProjectRequest projectRequest) {
//프로젝트 이미지 검사
projectHelper.validateProjectImages(projectRequest.getProjectImages());

//프로젝트 링크 검사
//projectHelper.validateProjectUrls(projectRequest.getProjectUrls());

//프로젝트 업데이트
project.update(projectRequest.getProjectInfoVo());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -14,21 +15,21 @@ public class ProjectBriefInfoVo {
private String name;
private String description;
private int generation;
private ProjectImage previewImage;
private ProjectImage thumbnailImage;

@Builder
public ProjectBriefInfoVo(
Long id,
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) {
Expand All @@ -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();
}
}

0 comments on commit bdf47dd

Please sign in to comment.