diff --git a/src/main/java/darkoverload/itzip/feature/resume/controller/ResumeController.java b/src/main/java/darkoverload/itzip/feature/resume/controller/ResumeController.java index 3123fa16..d2856608 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/controller/ResumeController.java +++ b/src/main/java/darkoverload/itzip/feature/resume/controller/ResumeController.java @@ -6,7 +6,6 @@ import darkoverload.itzip.feature.resume.controller.response.CreateResumeResponse; import darkoverload.itzip.feature.resume.controller.response.SearchResumeResponse; import darkoverload.itzip.feature.resume.controller.response.UpdateResumeResponse; -import darkoverload.itzip.feature.resume.domain.resume.Resume; import darkoverload.itzip.feature.resume.service.resume.ResumeReadService; import darkoverload.itzip.feature.resume.service.resume.ResumeService; import darkoverload.itzip.global.config.response.code.CommonExceptionCode; @@ -30,7 +29,6 @@ import org.springframework.web.bind.annotation.*; import java.util.List; -import java.util.stream.Collectors; @Slf4j @@ -58,6 +56,8 @@ public CreateResumeResponse createResume(@Valid @RequestBody CreateResumeRequest summary = "이력서 수정", description = "이력서 수정 시 객체 리스트에 존재하는 값 체크" ) + @ResponseCodeAnnotation(CommonResponseCode.SUCCESS) + @ExceptionCodeAnnotations(CommonExceptionCode.BAD_REQUEST) @PatchMapping("") public UpdateResumeResponse updateResume(@SwaggerRequestBody(description = "이력서 수정 정보", content = @Content( schema = @Schema(implementation = UpdateResumeRequest.class) diff --git a/src/main/java/darkoverload/itzip/feature/resume/controller/response/GetResumeDetailsResponse.java b/src/main/java/darkoverload/itzip/feature/resume/controller/response/GetResumeDetailsResponse.java new file mode 100644 index 00000000..824396cb --- /dev/null +++ b/src/main/java/darkoverload/itzip/feature/resume/controller/response/GetResumeDetailsResponse.java @@ -0,0 +1,5 @@ +package darkoverload.itzip.feature.resume.controller.response; + +public record GetResumeDetailsResponse() { + +} diff --git a/src/main/java/darkoverload/itzip/feature/resume/domain/myskill/MySkill.java b/src/main/java/darkoverload/itzip/feature/resume/domain/myskill/MySkill.java index f67046b9..6ee33dc1 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/domain/myskill/MySkill.java +++ b/src/main/java/darkoverload/itzip/feature/resume/domain/myskill/MySkill.java @@ -8,7 +8,6 @@ @Setter @Getter @ToString -@EqualsAndHashCode public class MySkill { // 이력서 private Resume resume; diff --git a/src/main/java/darkoverload/itzip/feature/resume/entity/AchievementEntity.java b/src/main/java/darkoverload/itzip/feature/resume/entity/AchievementEntity.java index f9d2e0ed..1a8a03a6 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/entity/AchievementEntity.java +++ b/src/main/java/darkoverload/itzip/feature/resume/entity/AchievementEntity.java @@ -13,6 +13,7 @@ @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) @Table(name="achievements") +@EqualsAndHashCode(callSuper = false) public class AchievementEntity extends AuditingFields { @Id diff --git a/src/main/java/darkoverload/itzip/feature/resume/entity/ActivityEntity.java b/src/main/java/darkoverload/itzip/feature/resume/entity/ActivityEntity.java index 005a7a3b..78ac4d6c 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/entity/ActivityEntity.java +++ b/src/main/java/darkoverload/itzip/feature/resume/entity/ActivityEntity.java @@ -12,7 +12,9 @@ @Getter @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) -@Table(name="activites") +@Table(name="activities") +@EqualsAndHashCode(callSuper = false) +@ToString public class ActivityEntity extends AuditingFields { @Id diff --git a/src/main/java/darkoverload/itzip/feature/resume/entity/CareerEntity.java b/src/main/java/darkoverload/itzip/feature/resume/entity/CareerEntity.java index 7bc6bc2c..d7c5add6 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/entity/CareerEntity.java +++ b/src/main/java/darkoverload/itzip/feature/resume/entity/CareerEntity.java @@ -14,6 +14,7 @@ @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) @Table(name="careers") +@EqualsAndHashCode(callSuper = false) public class CareerEntity extends AuditingFields { @Id @@ -50,4 +51,5 @@ public Career convertToDomain(){ .endDate(this.endDate) .build(); } + } diff --git a/src/main/java/darkoverload/itzip/feature/resume/entity/EducationEntity.java b/src/main/java/darkoverload/itzip/feature/resume/entity/EducationEntity.java index 577c0225..45e33577 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/entity/EducationEntity.java +++ b/src/main/java/darkoverload/itzip/feature/resume/entity/EducationEntity.java @@ -13,6 +13,8 @@ @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) @Table(name="educations") +@EqualsAndHashCode(callSuper = false) +@ToString public class EducationEntity extends AuditingFields { @Id diff --git a/src/main/java/darkoverload/itzip/feature/resume/entity/LanguageEntity.java b/src/main/java/darkoverload/itzip/feature/resume/entity/LanguageEntity.java index 85485d8d..9b03748c 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/entity/LanguageEntity.java +++ b/src/main/java/darkoverload/itzip/feature/resume/entity/LanguageEntity.java @@ -13,6 +13,7 @@ @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) @Table(name="languages") +@EqualsAndHashCode(callSuper = false) public class LanguageEntity extends AuditingFields { @Id diff --git a/src/main/java/darkoverload/itzip/feature/resume/entity/MySkillEntity.java b/src/main/java/darkoverload/itzip/feature/resume/entity/MySkillEntity.java index 7a135c77..53f70fd8 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/entity/MySkillEntity.java +++ b/src/main/java/darkoverload/itzip/feature/resume/entity/MySkillEntity.java @@ -11,6 +11,7 @@ @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) @Table(name="MySkills") +@EqualsAndHashCode(callSuper = false) public class MySkillEntity extends AuditingFields { @Id diff --git a/src/main/java/darkoverload/itzip/feature/resume/entity/QualificationEntity.java b/src/main/java/darkoverload/itzip/feature/resume/entity/QualificationEntity.java index 199ec912..94c81669 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/entity/QualificationEntity.java +++ b/src/main/java/darkoverload/itzip/feature/resume/entity/QualificationEntity.java @@ -14,6 +14,7 @@ @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) @Table(name="qualifications") +@EqualsAndHashCode(callSuper = false) public class QualificationEntity extends AuditingFields { @Id diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/achievement/AchievementJpaRepository.java b/src/main/java/darkoverload/itzip/feature/resume/repository/achievement/AchievementJpaRepository.java index b982e771..4bd70f7a 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/achievement/AchievementJpaRepository.java +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/achievement/AchievementJpaRepository.java @@ -1,10 +1,8 @@ package darkoverload.itzip.feature.resume.repository.achievement; import darkoverload.itzip.feature.resume.entity.AchievementEntity; -import darkoverload.itzip.feature.resume.repository.achievement.custom.CustomAchievementRepository; import org.springframework.data.jpa.repository.JpaRepository; -public interface AchievementJpaRepository extends JpaRepository , CustomAchievementRepository { - +public interface AchievementJpaRepository extends JpaRepository { } diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/achievement/custom/CustomAchievementRepository.java b/src/main/java/darkoverload/itzip/feature/resume/repository/achievement/AchievementReadJpaRepository.java similarity index 58% rename from src/main/java/darkoverload/itzip/feature/resume/repository/achievement/custom/CustomAchievementRepository.java rename to src/main/java/darkoverload/itzip/feature/resume/repository/achievement/AchievementReadJpaRepository.java index e92d675d..97648fcb 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/achievement/custom/CustomAchievementRepository.java +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/achievement/AchievementReadJpaRepository.java @@ -1,9 +1,11 @@ -package darkoverload.itzip.feature.resume.repository.achievement.custom; +package darkoverload.itzip.feature.resume.repository.achievement; import darkoverload.itzip.feature.resume.entity.AchievementEntity; +import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; -public interface CustomAchievementRepository { +public interface AchievementReadJpaRepository extends JpaRepository { List findAllByResumeId(Long resumeId); + } diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/achievement/AchievementReadRepositoryImpl.java b/src/main/java/darkoverload/itzip/feature/resume/repository/achievement/AchievementReadRepositoryImpl.java new file mode 100644 index 00000000..2c58f4d8 --- /dev/null +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/achievement/AchievementReadRepositoryImpl.java @@ -0,0 +1,22 @@ +package darkoverload.itzip.feature.resume.repository.achievement; + +import darkoverload.itzip.feature.resume.domain.achievement.Achievement; +import darkoverload.itzip.feature.resume.entity.AchievementEntity; +import darkoverload.itzip.feature.resume.service.resume.port.achievement.AchievementReadRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +@RequiredArgsConstructor +public class AchievementReadRepositoryImpl implements AchievementReadRepository { + + private final AchievementReadJpaRepository repository; + + @Override + public List findAllByResumeId(Long resumeId) { + return repository.findAllByResumeId(resumeId).stream().map(AchievementEntity::convertToDomain).toList(); + } + +} diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/achievement/AchievementRepositoryImpl.java b/src/main/java/darkoverload/itzip/feature/resume/repository/achievement/AchievementRepositoryImpl.java index 32c0e56b..d9eb7f75 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/achievement/AchievementRepositoryImpl.java +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/achievement/AchievementRepositoryImpl.java @@ -1,14 +1,12 @@ package darkoverload.itzip.feature.resume.repository.achievement; import darkoverload.itzip.feature.resume.domain.achievement.Achievement; -import darkoverload.itzip.feature.resume.domain.resume.Resume; import darkoverload.itzip.feature.resume.entity.AchievementEntity; -import darkoverload.itzip.feature.resume.service.resume.port.AchievementRepository; +import darkoverload.itzip.feature.resume.service.resume.port.achievement.AchievementRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; import java.util.List; -import java.util.Objects; @Repository @RequiredArgsConstructor @@ -16,11 +14,6 @@ public class AchievementRepositoryImpl implements AchievementRepository { private final AchievementJpaRepository repository; - @Override - public List findAllByResumeId(Long resumeId) { - return repository.findAllByResumeId(resumeId).stream().map(AchievementEntity::convertToDomain).toList(); - } - @Override public Achievement save(Achievement achievement) { return repository.save(achievement.toEntity()).convertToDomain(); @@ -47,22 +40,4 @@ public void deleteAllAchievements(List deleteAchievements) { repository.deleteAll(deleteAchievements.stream().map(Achievement::toEntity).toList()); } - private List getDeleteAchievementIds(List achievements, Resume resume) { - List achievementIds = getAchievementIds(resume.getResumeId()); - - List updateIds = getUpdateAchievementIds(achievements); - - return achievementIds.stream() - .filter(id -> !updateIds.contains(id)).toList(); - } - - private List getUpdateAchievementIds(List achievements) { - return achievements.stream().filter(Objects::nonNull).map(Achievement::getAchievementId).toList(); - } - - private List getAchievementIds(Long resumeId) { - return findAllByResumeId(resumeId).stream().map(Achievement::getAchievementId).toList(); - } - - } diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/achievement/custom/CustomAchievementRepositoryImpl.java b/src/main/java/darkoverload/itzip/feature/resume/repository/achievement/custom/CustomAchievementRepositoryImpl.java deleted file mode 100644 index 14966d89..00000000 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/achievement/custom/CustomAchievementRepositoryImpl.java +++ /dev/null @@ -1,25 +0,0 @@ -package darkoverload.itzip.feature.resume.repository.achievement.custom; - -import com.querydsl.jpa.impl.JPAQueryFactory; -import darkoverload.itzip.feature.resume.entity.AchievementEntity; -import darkoverload.itzip.feature.resume.entity.QAchievementEntity; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Repository; - -import java.util.List; - -@Repository -@RequiredArgsConstructor -public class CustomAchievementRepositoryImpl implements CustomAchievementRepository{ - - private final JPAQueryFactory queryFactory; - - private final QAchievementEntity qAchievement = QAchievementEntity.achievementEntity; - - public List findAllByResumeId(Long resumeId) { - - return queryFactory.selectFrom(qAchievement) - .where(qAchievement.resume.id.eq(resumeId)).fetch(); - - } -} diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/activity/ActivityJpaRepository.java b/src/main/java/darkoverload/itzip/feature/resume/repository/activity/ActivityJpaRepository.java index 25547ec9..08d6a614 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/activity/ActivityJpaRepository.java +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/activity/ActivityJpaRepository.java @@ -1,9 +1,8 @@ package darkoverload.itzip.feature.resume.repository.activity; import darkoverload.itzip.feature.resume.entity.ActivityEntity; -import darkoverload.itzip.feature.resume.repository.activity.Custom.CustomActivityRepository; import org.springframework.data.jpa.repository.JpaRepository; -public interface ActivityJpaRepository extends JpaRepository , CustomActivityRepository { +public interface ActivityJpaRepository extends JpaRepository { } diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/activity/ActivityReadJpaRepository.java b/src/main/java/darkoverload/itzip/feature/resume/repository/activity/ActivityReadJpaRepository.java new file mode 100644 index 00000000..5afc86e4 --- /dev/null +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/activity/ActivityReadJpaRepository.java @@ -0,0 +1,10 @@ +package darkoverload.itzip.feature.resume.repository.activity; + +import darkoverload.itzip.feature.resume.entity.ActivityEntity; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + +public interface ActivityReadJpaRepository extends JpaRepository { + List findAllByResumeId(Long id); +} diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/activity/ActivityReadRepositoryImpl.java b/src/main/java/darkoverload/itzip/feature/resume/repository/activity/ActivityReadRepositoryImpl.java new file mode 100644 index 00000000..e63ec460 --- /dev/null +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/activity/ActivityReadRepositoryImpl.java @@ -0,0 +1,23 @@ +package darkoverload.itzip.feature.resume.repository.activity; + +import darkoverload.itzip.feature.resume.domain.activity.Activity; +import darkoverload.itzip.feature.resume.entity.ActivityEntity; +import darkoverload.itzip.feature.resume.service.resume.port.activity.ActivityReadRepository; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Slf4j +@Repository +@RequiredArgsConstructor +public class ActivityReadRepositoryImpl implements ActivityReadRepository { + + private final ActivityReadJpaRepository repository; + + @Override + public List findAllByResumeId(Long resumeId) { + return repository.findAllByResumeId(resumeId).stream().map(ActivityEntity::convertToDomain).toList(); + } +} diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/activity/ActivityRepositoryImpl.java b/src/main/java/darkoverload/itzip/feature/resume/repository/activity/ActivityRepositoryImpl.java index 610375d8..862a2b1c 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/activity/ActivityRepositoryImpl.java +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/activity/ActivityRepositoryImpl.java @@ -4,7 +4,7 @@ import darkoverload.itzip.feature.resume.domain.activity.Activity; import darkoverload.itzip.feature.resume.domain.resume.Resume; import darkoverload.itzip.feature.resume.entity.ActivityEntity; -import darkoverload.itzip.feature.resume.service.resume.port.ActivityRepository; +import darkoverload.itzip.feature.resume.service.resume.port.activity.ActivityRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; @@ -17,11 +17,6 @@ public class ActivityRepositoryImpl implements ActivityRepository { private final ActivityJpaRepository repository; - @Override - public List findAllByResumeId(Long resumeId) { - return repository.findAllByResumeId(resumeId).stream().map(ActivityEntity::convertToDomain).toList(); - } - @Override public Activity save(Activity activity) { @@ -33,11 +28,6 @@ public List update(List activities) { return saveAll(activities); } - @Override - public void deleteAllByIds(List ids) { - repository.deleteAllById(ids); - } - @Override public List saveAll(List activities) { List activityEntities = activities.stream().map(Activity::toEntity).toList(); @@ -49,20 +39,4 @@ public void deleteAllActivities(List deleteActivities) { repository.deleteAll(deleteActivities.stream().map(Activity::toEntity).toList()); } - private List getDeleteActivityIds(List activities, Resume resume) { - List activityIds = getActivityIds(resume.getResumeId()); - List updateIds = getUpdateActivityIds(activities); - - return activityIds.stream() - .filter(id -> !updateIds.contains(id)).toList(); - } - - private List getUpdateActivityIds(List activities) { - return activities.stream().filter(Objects::nonNull).map(Activity::getActivityId).toList(); - } - - private List getActivityIds(Long resumeId) { - return findAllByResumeId(resumeId).stream().map(Activity::getActivityId).toList(); - } - } diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/activity/Custom/CustomActivityRepository.java b/src/main/java/darkoverload/itzip/feature/resume/repository/activity/Custom/CustomActivityRepository.java deleted file mode 100644 index a3a24861..00000000 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/activity/Custom/CustomActivityRepository.java +++ /dev/null @@ -1,11 +0,0 @@ -package darkoverload.itzip.feature.resume.repository.activity.Custom; - -import darkoverload.itzip.feature.resume.entity.ActivityEntity; - -import java.util.List; - -public interface CustomActivityRepository { - - public List findAllByResumeId(Long resumeId); - -} diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/activity/Custom/CustomActivityRepositoryImpl.java b/src/main/java/darkoverload/itzip/feature/resume/repository/activity/Custom/CustomActivityRepositoryImpl.java deleted file mode 100644 index c6b49a44..00000000 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/activity/Custom/CustomActivityRepositoryImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package darkoverload.itzip.feature.resume.repository.activity.Custom; - -import com.querydsl.jpa.impl.JPAQueryFactory; -import darkoverload.itzip.feature.resume.entity.ActivityEntity; -import darkoverload.itzip.feature.resume.entity.QActivityEntity; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Repository; - -import java.util.List; - - -@Repository -@RequiredArgsConstructor -public class CustomActivityRepositoryImpl implements CustomActivityRepository{ - - private final JPAQueryFactory queryFactory; - private final QActivityEntity qActivity = QActivityEntity.activityEntity; - - @Override - public List findAllByResumeId(Long resumeId) { - - return queryFactory.selectFrom(qActivity) - .where(qActivity.resume.id.eq(resumeId)) - .fetch(); - } -} diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/career/CareerJpaRepository.java b/src/main/java/darkoverload/itzip/feature/resume/repository/career/CareerJpaRepository.java index e043022c..3753dcc5 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/career/CareerJpaRepository.java +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/career/CareerJpaRepository.java @@ -1,9 +1,8 @@ package darkoverload.itzip.feature.resume.repository.career; import darkoverload.itzip.feature.resume.entity.CareerEntity; -import darkoverload.itzip.feature.resume.repository.career.Custom.CustomCareerRepository; import org.springframework.data.jpa.repository.JpaRepository; -public interface CareerJpaRepository extends JpaRepository , CustomCareerRepository { +public interface CareerJpaRepository extends JpaRepository { } diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/career/CareerReadJpaRepository.java b/src/main/java/darkoverload/itzip/feature/resume/repository/career/CareerReadJpaRepository.java new file mode 100644 index 00000000..0836584e --- /dev/null +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/career/CareerReadJpaRepository.java @@ -0,0 +1,11 @@ +package darkoverload.itzip.feature.resume.repository.career; + +import darkoverload.itzip.feature.resume.entity.CareerEntity; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + +public interface CareerReadJpaRepository extends JpaRepository { + List findAllByResumeId(Long id); + +} diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/career/CareerReadRepositoryImpl.java b/src/main/java/darkoverload/itzip/feature/resume/repository/career/CareerReadRepositoryImpl.java new file mode 100644 index 00000000..410ad4cd --- /dev/null +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/career/CareerReadRepositoryImpl.java @@ -0,0 +1,23 @@ +package darkoverload.itzip.feature.resume.repository.career; + +import darkoverload.itzip.feature.resume.domain.career.Career; +import darkoverload.itzip.feature.resume.entity.CareerEntity; +import darkoverload.itzip.feature.resume.service.resume.port.career.CareerReadRepository; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Repository; +import java.util.List; + +@Slf4j +@Repository +@RequiredArgsConstructor +public class CareerReadRepositoryImpl implements CareerReadRepository { + + private final CareerReadJpaRepository repository; + + @Override + public List findAllByResumeId(Long resumeId) { + return repository.findAllByResumeId(resumeId).stream().map(CareerEntity::convertToDomain).toList(); + } + +} diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/career/CareerRepositoryImpl.java b/src/main/java/darkoverload/itzip/feature/resume/repository/career/CareerRepositoryImpl.java index 52fd07bf..ef87068a 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/career/CareerRepositoryImpl.java +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/career/CareerRepositoryImpl.java @@ -1,17 +1,12 @@ package darkoverload.itzip.feature.resume.repository.career; - import darkoverload.itzip.feature.resume.domain.career.Career; -import darkoverload.itzip.feature.resume.domain.resume.Resume; import darkoverload.itzip.feature.resume.entity.CareerEntity; -import darkoverload.itzip.feature.resume.service.resume.port.CareerRepository; +import darkoverload.itzip.feature.resume.service.resume.port.career.CareerRepository; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Repository; - import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; @Slf4j @Repository @@ -20,11 +15,6 @@ public class CareerRepositoryImpl implements CareerRepository { private final CareerJpaRepository repository; - @Override - public List findAllByResumeId(Long resumeId) { - return repository.findAllByResumeId(resumeId).stream().map(CareerEntity::convertToDomain).toList(); - } - @Override public Career save(Career career) { return repository.save(career.toEntity()).convertToDomain(); @@ -53,22 +43,4 @@ public void deleteAllCareers(List deleteCareers) { .toList()); } - private List getDeleteCareerIds(List careers, Resume resume) { - List careerIds = getCareerIds(resume.getResumeId()); - - List updateIds = getUpdateCareerIds(careers); - - return careerIds.stream() - .filter(id -> !updateIds.contains(id)).toList(); - } - - private List getUpdateCareerIds(List careers) { - return careers.stream().filter(Objects::nonNull).map(Career::getCareerId).toList(); - } - - private List getCareerIds(Long resumeId) { - return findAllByResumeId(resumeId).stream().map(Career::getCareerId).toList(); - } - - } diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/career/Custom/CustomCareerRepository.java b/src/main/java/darkoverload/itzip/feature/resume/repository/career/Custom/CustomCareerRepository.java deleted file mode 100644 index b26ed54b..00000000 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/career/Custom/CustomCareerRepository.java +++ /dev/null @@ -1,10 +0,0 @@ -package darkoverload.itzip.feature.resume.repository.career.Custom; - -import darkoverload.itzip.feature.resume.entity.CareerEntity; - -import java.util.List; - -public interface CustomCareerRepository { - - List findAllByResumeId(Long resumeId); -} diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/career/Custom/CustomCareerRepositoryImpl.java b/src/main/java/darkoverload/itzip/feature/resume/repository/career/Custom/CustomCareerRepositoryImpl.java deleted file mode 100644 index 70bc96bc..00000000 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/career/Custom/CustomCareerRepositoryImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package darkoverload.itzip.feature.resume.repository.career.Custom; - -import com.querydsl.jpa.impl.JPAQueryFactory; -import darkoverload.itzip.feature.resume.entity.CareerEntity; -import darkoverload.itzip.feature.resume.entity.QCareerEntity; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Repository; - -import java.util.List; - -@Repository -@RequiredArgsConstructor -public class CustomCareerRepositoryImpl implements CustomCareerRepository{ - - private final JPAQueryFactory queryFactory; - - private final QCareerEntity qCareer = QCareerEntity.careerEntity; - - - @Override - public List findAllByResumeId(Long resumeId) { - - return queryFactory.selectFrom(qCareer) - .where(qCareer.resume.id.eq(resumeId)).fetch(); - } -} diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/education/EducationJpaRepository.java b/src/main/java/darkoverload/itzip/feature/resume/repository/education/EducationJpaRepository.java index 3fef4e08..b152c5b9 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/education/EducationJpaRepository.java +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/education/EducationJpaRepository.java @@ -1,8 +1,8 @@ package darkoverload.itzip.feature.resume.repository.education; import darkoverload.itzip.feature.resume.entity.EducationEntity; -import darkoverload.itzip.feature.resume.repository.education.custom.CustomEducationRepository; import org.springframework.data.jpa.repository.JpaRepository; -public interface EducationJpaRepository extends JpaRepository , CustomEducationRepository { +public interface EducationJpaRepository extends JpaRepository { + } diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/education/EducationReadJpaRepository.java b/src/main/java/darkoverload/itzip/feature/resume/repository/education/EducationReadJpaRepository.java new file mode 100644 index 00000000..cd85612d --- /dev/null +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/education/EducationReadJpaRepository.java @@ -0,0 +1,11 @@ +package darkoverload.itzip.feature.resume.repository.education; + +import darkoverload.itzip.feature.resume.entity.EducationEntity; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + +public interface EducationReadJpaRepository extends JpaRepository { + List findAllByResumeId(Long resumeId); + +} diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/education/EducationReadRepositoryImpl.java b/src/main/java/darkoverload/itzip/feature/resume/repository/education/EducationReadRepositoryImpl.java new file mode 100644 index 00000000..4264792c --- /dev/null +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/education/EducationReadRepositoryImpl.java @@ -0,0 +1,21 @@ +package darkoverload.itzip.feature.resume.repository.education; + +import darkoverload.itzip.feature.resume.domain.education.Education; +import darkoverload.itzip.feature.resume.entity.EducationEntity; +import darkoverload.itzip.feature.resume.service.resume.port.education.EducationReadRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +@RequiredArgsConstructor +public class EducationReadRepositoryImpl implements EducationReadRepository { + + private final EducationReadJpaRepository repository; + + @Override + public List findAllByResumeId(Long resumeId) { + return repository.findAllByResumeId(resumeId).stream().map(EducationEntity::convertToDomain).toList(); + } +} diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/education/EducationRepositoryImpl.java b/src/main/java/darkoverload/itzip/feature/resume/repository/education/EducationRepositoryImpl.java index 1f9cb8bd..5fa4edb4 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/education/EducationRepositoryImpl.java +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/education/EducationRepositoryImpl.java @@ -2,16 +2,13 @@ import darkoverload.itzip.feature.resume.domain.education.Education; -import darkoverload.itzip.feature.resume.domain.language.Language; -import darkoverload.itzip.feature.resume.domain.resume.Resume; import darkoverload.itzip.feature.resume.entity.EducationEntity; -import darkoverload.itzip.feature.resume.service.resume.port.EducationRepository; +import darkoverload.itzip.feature.resume.service.resume.port.education.EducationRepository; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Repository; import java.util.List; -import java.util.Objects; @Slf4j @Repository @@ -20,11 +17,6 @@ public class EducationRepositoryImpl implements EducationRepository { private final EducationJpaRepository repository; - @Override - public List findAllByResumeId(Long resumeId) { - return repository.findAllByResumeId(resumeId).stream().map(EducationEntity::convertToDomain).toList(); - } - @Override public List update(List educations){ return saveAll(educations); @@ -51,21 +43,4 @@ public void deleteAllEducations(List deleteEducations) { repository.deleteAll(deleteEducations.stream().map(Education::toEntity).toList()); } - private List getDeleteEducationIds(List educations, Resume resume) { - List educationIds = getEducationIds(resume.getResumeId()); - List updateIds = getUpdateEducationIds(educations); - - return educationIds.stream() - .filter(id-> !updateIds.contains(id)).toList(); - } - - private List getUpdateEducationIds(List educations) { - return educations.stream().filter(Objects::nonNull).map(Education::getEducationId).toList(); - } - - private List getEducationIds(Long resumeId) { - return findAllByResumeId(resumeId).stream().map(Education::getEducationId).toList(); - } - - } diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/education/custom/CustomEducationRepository.java b/src/main/java/darkoverload/itzip/feature/resume/repository/education/custom/CustomEducationRepository.java deleted file mode 100644 index 0cc71612..00000000 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/education/custom/CustomEducationRepository.java +++ /dev/null @@ -1,11 +0,0 @@ -package darkoverload.itzip.feature.resume.repository.education.custom; - -import darkoverload.itzip.feature.resume.entity.EducationEntity; - -import java.util.List; - -public interface CustomEducationRepository { - - List findAllByResumeId(Long resumeId); - -} diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/education/custom/CustomEducationRepositoryImpl.java b/src/main/java/darkoverload/itzip/feature/resume/repository/education/custom/CustomEducationRepositoryImpl.java deleted file mode 100644 index eb1a84db..00000000 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/education/custom/CustomEducationRepositoryImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package darkoverload.itzip.feature.resume.repository.education.custom; - - -import com.querydsl.jpa.impl.JPAQueryFactory; -import darkoverload.itzip.feature.resume.entity.EducationEntity; -import darkoverload.itzip.feature.resume.entity.LanguageEntity; -import darkoverload.itzip.feature.resume.entity.QEducationEntity; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Repository; - -import java.util.List; - -@Repository -@RequiredArgsConstructor -public class CustomEducationRepositoryImpl implements CustomEducationRepository{ - - private final JPAQueryFactory queryFactory; - - private final QEducationEntity qEducation = QEducationEntity.educationEntity; - - @Override - public List findAllByResumeId(Long resumeId) { - return queryFactory.selectFrom(qEducation) - .where(qEducation.resume.id.eq(resumeId)).fetch(); - } -} diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/language/LanguageJpaRepository.java b/src/main/java/darkoverload/itzip/feature/resume/repository/language/LanguageJpaRepository.java index 99b532d8..703bca6c 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/language/LanguageJpaRepository.java +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/language/LanguageJpaRepository.java @@ -1,9 +1,8 @@ package darkoverload.itzip.feature.resume.repository.language; import darkoverload.itzip.feature.resume.entity.LanguageEntity; -import darkoverload.itzip.feature.resume.repository.language.custom.CustomLanguageRepository; import org.springframework.data.jpa.repository.JpaRepository; -public interface LanguageJpaRepository extends JpaRepository , CustomLanguageRepository { +public interface LanguageJpaRepository extends JpaRepository { } diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/language/LanguageReadJpaRepository.java b/src/main/java/darkoverload/itzip/feature/resume/repository/language/LanguageReadJpaRepository.java new file mode 100644 index 00000000..5b28a857 --- /dev/null +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/language/LanguageReadJpaRepository.java @@ -0,0 +1,11 @@ +package darkoverload.itzip.feature.resume.repository.language; + +import darkoverload.itzip.feature.resume.entity.LanguageEntity; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + +public interface LanguageReadJpaRepository extends JpaRepository { + List findAllByResumeId(Long resumeId); + +} diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/language/LanguageReadRepositoryImpl.java b/src/main/java/darkoverload/itzip/feature/resume/repository/language/LanguageReadRepositoryImpl.java new file mode 100644 index 00000000..8d3f8f8d --- /dev/null +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/language/LanguageReadRepositoryImpl.java @@ -0,0 +1,22 @@ +package darkoverload.itzip.feature.resume.repository.language; + +import darkoverload.itzip.feature.resume.domain.language.Language; +import darkoverload.itzip.feature.resume.entity.LanguageEntity; +import darkoverload.itzip.feature.resume.service.resume.port.language.LanguageReadRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +@RequiredArgsConstructor +public class LanguageReadRepositoryImpl implements LanguageReadRepository { + + private final LanguageReadJpaRepository repository; + + @Override + public List findAllByResumeId(Long resumeId) { + return repository.findAllByResumeId(resumeId).stream().map(LanguageEntity::convertToDomain).toList(); + } +} + diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/language/LanguageRepositoryImpl.java b/src/main/java/darkoverload/itzip/feature/resume/repository/language/LanguageRepositoryImpl.java index 96d33466..00af6f0c 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/language/LanguageRepositoryImpl.java +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/language/LanguageRepositoryImpl.java @@ -3,7 +3,7 @@ import darkoverload.itzip.feature.resume.domain.language.Language; import darkoverload.itzip.feature.resume.domain.resume.Resume; import darkoverload.itzip.feature.resume.entity.LanguageEntity; -import darkoverload.itzip.feature.resume.service.resume.port.LanguageRepository; +import darkoverload.itzip.feature.resume.service.resume.port.language.LanguageRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; @@ -16,11 +16,6 @@ public class LanguageRepositoryImpl implements LanguageRepository { private final LanguageJpaRepository repository; - @Override - public List findAllByResumeId(Long resumeId) { - return repository.findAllByResumeId(resumeId).stream().map(LanguageEntity::convertToDomain).toList(); - } - @Override public List update(List languages) { return saveAll(languages); @@ -47,22 +42,4 @@ public List saveAll(List languages) { return repository.saveAll(languageEntities).stream().map(LanguageEntity::convertToDomain).toList(); } - private List getUpdateLanguageIds(List languages) { - return languages.stream().filter(Objects::nonNull).map(Language::getLanguageId).toList(); - } - - - private List getLanguageIds(Long resumeId) { - return findAllByResumeId(resumeId).stream().map(Language::getLanguageId).toList(); - } - - private List getLanguageDeleteIds(List languages, Resume resume) { - List languageIds = getLanguageIds(resume.getResumeId()); - - List updateIds = getUpdateLanguageIds(languages); - - return languageIds.stream() - .filter(id -> !updateIds.contains(id)).toList(); - } - } diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/language/custom/CustomLanguageRepository.java b/src/main/java/darkoverload/itzip/feature/resume/repository/language/custom/CustomLanguageRepository.java deleted file mode 100644 index 18d993db..00000000 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/language/custom/CustomLanguageRepository.java +++ /dev/null @@ -1,12 +0,0 @@ -package darkoverload.itzip.feature.resume.repository.language.custom; - - -import darkoverload.itzip.feature.resume.entity.LanguageEntity; - -import java.util.List; - -public interface CustomLanguageRepository { - - List findAllByResumeId(Long resumeId); - -} diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/language/custom/CustomLanguageRepositoryImpl.java b/src/main/java/darkoverload/itzip/feature/resume/repository/language/custom/CustomLanguageRepositoryImpl.java deleted file mode 100644 index 2f0c6f42..00000000 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/language/custom/CustomLanguageRepositoryImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package darkoverload.itzip.feature.resume.repository.language.custom; - -import com.querydsl.jpa.impl.JPAQueryFactory; -import darkoverload.itzip.feature.resume.entity.LanguageEntity; -import darkoverload.itzip.feature.resume.entity.QLanguageEntity; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Repository; - -import java.util.List; - - -@Repository -@RequiredArgsConstructor -public class CustomLanguageRepositoryImpl implements CustomLanguageRepository{ - - private final JPAQueryFactory queryFactory; - - private final QLanguageEntity qLanguage = QLanguageEntity.languageEntity; - - @Override - public List findAllByResumeId(Long resumeId) { - - return queryFactory.selectFrom(qLanguage) - .where(qLanguage.resume.id.eq(resumeId)).fetch(); - } -} diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/myskill/MySkillJpaRepository.java b/src/main/java/darkoverload/itzip/feature/resume/repository/myskill/MySkillJpaRepository.java index bb2f37e0..b7324db3 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/myskill/MySkillJpaRepository.java +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/myskill/MySkillJpaRepository.java @@ -1,9 +1,8 @@ package darkoverload.itzip.feature.resume.repository.myskill; import darkoverload.itzip.feature.resume.entity.MySkillEntity; -import darkoverload.itzip.feature.resume.repository.myskill.custom.CustomMySkillRepository; import org.springframework.data.jpa.repository.JpaRepository; -public interface MySkillJpaRepository extends JpaRepository , CustomMySkillRepository { +public interface MySkillJpaRepository extends JpaRepository { } diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/myskill/MySkillReadJpaRepository.java b/src/main/java/darkoverload/itzip/feature/resume/repository/myskill/MySkillReadJpaRepository.java new file mode 100644 index 00000000..3d94fdec --- /dev/null +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/myskill/MySkillReadJpaRepository.java @@ -0,0 +1,10 @@ +package darkoverload.itzip.feature.resume.repository.myskill; + +import darkoverload.itzip.feature.resume.entity.MySkillEntity; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + +public interface MySkillReadJpaRepository extends JpaRepository { + List findAllByResumeId(Long resumeId); +} diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/myskill/MySkillReadRepositoryImpl.java b/src/main/java/darkoverload/itzip/feature/resume/repository/myskill/MySkillReadRepositoryImpl.java new file mode 100644 index 00000000..edf13a48 --- /dev/null +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/myskill/MySkillReadRepositoryImpl.java @@ -0,0 +1,22 @@ +package darkoverload.itzip.feature.resume.repository.myskill; + +import darkoverload.itzip.feature.resume.domain.myskill.MySkill; +import darkoverload.itzip.feature.resume.entity.MySkillEntity; +import darkoverload.itzip.feature.resume.service.resume.port.myskill.MySkillReadRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +@RequiredArgsConstructor +public class MySkillReadRepositoryImpl implements MySkillReadRepository { + + private final MySkillReadJpaRepository repository; + + @Override + public List findByAllResumeId(Long resumeId) { + return repository.findAllByResumeId(resumeId).stream().map(MySkillEntity::convertToDomain).toList(); + } + +} diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/myskill/MySkillRepositoryImpl.java b/src/main/java/darkoverload/itzip/feature/resume/repository/myskill/MySkillRepositoryImpl.java index 9dff5024..81d8259c 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/myskill/MySkillRepositoryImpl.java +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/myskill/MySkillRepositoryImpl.java @@ -4,7 +4,7 @@ import darkoverload.itzip.feature.resume.domain.myskill.MySkill; import darkoverload.itzip.feature.resume.domain.resume.Resume; import darkoverload.itzip.feature.resume.entity.MySkillEntity; -import darkoverload.itzip.feature.resume.service.resume.port.MySkillRepository; +import darkoverload.itzip.feature.resume.service.resume.port.myskill.MySkillRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; @@ -18,11 +18,6 @@ public class MySkillRepositoryImpl implements MySkillRepository { private final MySkillJpaRepository repository; - @Override - public List findByAllResumeId(Long resumeId) { - return repository.findByAllResumeId(resumeId).stream().map(MySkillEntity::convertToDomain).toList(); - } - @Override public List update(List mySkills){ return saveAll(mySkills); @@ -49,21 +44,4 @@ public List saveAll(List mySkill) { return mySkillEntities.stream().map(MySkillEntity::convertToDomain).collect(Collectors.toList()); } - private List getMySkillDeleteIds(List mySkills, Resume resume) { - List mySkillIds = getMySkillIds(resume.getResumeId()); - - List updateIds = getMySkillUpdateIds(mySkills); - - return mySkillIds.stream() - .filter(id -> !updateIds.contains(id)).toList(); - } - - - private List getMySkillUpdateIds(List mySkills) { - return mySkills.stream().filter(Objects::nonNull).map(MySkill::getMySkillId).toList(); - } - - private List getMySkillIds(Long resumeId){ - return findByAllResumeId(resumeId).stream().map(MySkill::getMySkillId).toList(); - } } diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/myskill/custom/CustomMySkillRepository.java b/src/main/java/darkoverload/itzip/feature/resume/repository/myskill/custom/CustomMySkillRepository.java deleted file mode 100644 index 3fe47d12..00000000 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/myskill/custom/CustomMySkillRepository.java +++ /dev/null @@ -1,11 +0,0 @@ -package darkoverload.itzip.feature.resume.repository.myskill.custom; - -import darkoverload.itzip.feature.resume.entity.MySkillEntity; - -import java.util.List; - -public interface CustomMySkillRepository { - - List findByAllResumeId(Long resumeId); - -} diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/myskill/custom/CustomMySkillRepositoryImpl.java b/src/main/java/darkoverload/itzip/feature/resume/repository/myskill/custom/CustomMySkillRepositoryImpl.java deleted file mode 100644 index 05d8c815..00000000 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/myskill/custom/CustomMySkillRepositoryImpl.java +++ /dev/null @@ -1,25 +0,0 @@ -package darkoverload.itzip.feature.resume.repository.myskill.custom; - -import com.querydsl.jpa.impl.JPAQueryFactory; -import darkoverload.itzip.feature.resume.entity.MySkillEntity; -import darkoverload.itzip.feature.resume.entity.QMySkillEntity; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Repository; - -import java.util.List; - -@Repository -@RequiredArgsConstructor -public class CustomMySkillRepositoryImpl implements CustomMySkillRepository { - - private final JPAQueryFactory queryFactory; - - private final QMySkillEntity qMySkill = QMySkillEntity.mySkillEntity; - - @Override - public List findByAllResumeId(Long resumeId) { - return queryFactory.selectFrom(qMySkill) - .where(qMySkill.resume.id.eq(resumeId)) - .fetch(); - } -} diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/qualification/QualificationJpaRepository.java b/src/main/java/darkoverload/itzip/feature/resume/repository/qualification/QualificationJpaRepository.java index cd39b764..19c4ac7b 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/qualification/QualificationJpaRepository.java +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/qualification/QualificationJpaRepository.java @@ -1,9 +1,8 @@ package darkoverload.itzip.feature.resume.repository.qualification; import darkoverload.itzip.feature.resume.entity.QualificationEntity; -import darkoverload.itzip.feature.resume.repository.qualification.custom.CustomQualification; import org.springframework.data.jpa.repository.JpaRepository; -public interface QualificationJpaRepository extends JpaRepository , CustomQualification { +public interface QualificationJpaRepository extends JpaRepository { } diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/qualification/QualificationReadJpaRepository.java b/src/main/java/darkoverload/itzip/feature/resume/repository/qualification/QualificationReadJpaRepository.java new file mode 100644 index 00000000..91995905 --- /dev/null +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/qualification/QualificationReadJpaRepository.java @@ -0,0 +1,11 @@ +package darkoverload.itzip.feature.resume.repository.qualification; + +import darkoverload.itzip.feature.resume.entity.QualificationEntity; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + +public interface QualificationReadJpaRepository extends JpaRepository { + List findAllByResumeId(Long resumeId); + +} diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/qualification/QualificationReadRepositoryImpl.java b/src/main/java/darkoverload/itzip/feature/resume/repository/qualification/QualificationReadRepositoryImpl.java new file mode 100644 index 00000000..fe9823d7 --- /dev/null +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/qualification/QualificationReadRepositoryImpl.java @@ -0,0 +1,22 @@ +package darkoverload.itzip.feature.resume.repository.qualification; + +import darkoverload.itzip.feature.resume.domain.qualification.Qualification; +import darkoverload.itzip.feature.resume.entity.QualificationEntity; +import darkoverload.itzip.feature.resume.service.resume.port.qualification.QualificationReadRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +@RequiredArgsConstructor +public class QualificationReadRepositoryImpl implements QualificationReadRepository { + + private final QualificationReadJpaRepository repository; + + @Override + public List findAllByResumeId(Long resumeId) { + return repository.findAllByResumeId(resumeId).stream().map(QualificationEntity::convertToDomain).toList(); + } + +} diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/qualification/QualificationRepositoryImpl.java b/src/main/java/darkoverload/itzip/feature/resume/repository/qualification/QualificationRepositoryImpl.java index dfe9bd3d..4809667a 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/qualification/QualificationRepositoryImpl.java +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/qualification/QualificationRepositoryImpl.java @@ -4,13 +4,12 @@ import darkoverload.itzip.feature.resume.domain.qualification.Qualification; import darkoverload.itzip.feature.resume.domain.resume.Resume; import darkoverload.itzip.feature.resume.entity.QualificationEntity; -import darkoverload.itzip.feature.resume.service.resume.port.QualificationRepository; +import darkoverload.itzip.feature.resume.service.resume.port.qualification.QualificationRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; import java.util.List; import java.util.Objects; -import java.util.stream.Collectors; @RequiredArgsConstructor @Repository @@ -18,11 +17,6 @@ public class QualificationRepositoryImpl implements QualificationRepository { private final QualificationJpaRepository qualificationRepository; - @Override - public List findByAllResumeId(Long resumeId) { - return qualificationRepository.findByAllResumeId(resumeId).stream().map(QualificationEntity::convertToDomain).toList(); - } - @Override public List update(List qualifications) { return saveAll(qualifications); @@ -49,19 +43,4 @@ public List saveAll(List qualifications) { return qualificationRepository.saveAll(qualificationEntities).stream().map(QualificationEntity::convertToDomain).toList(); } - private List getQualificationDeleteIds(List qualifications, Resume resume) { - List qualificationIds = getQualificationIds(resume.getResumeId()); - List updateIds = getQualificationUpdateIds(qualifications); - - return qualificationIds.stream().filter(id -> !updateIds.contains(id)).toList(); - } - - private List getQualificationUpdateIds(List qualifications) { - return qualifications.stream().filter(Objects::nonNull).map(Qualification::getQualificationId).toList(); - } - - private List getQualificationIds(Long resumeId) { - return findByAllResumeId(resumeId).stream().map(Qualification::getQualificationId).toList(); - } - } diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/qualification/custom/CustomQualification.java b/src/main/java/darkoverload/itzip/feature/resume/repository/qualification/custom/CustomQualification.java deleted file mode 100644 index ecd538e9..00000000 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/qualification/custom/CustomQualification.java +++ /dev/null @@ -1,11 +0,0 @@ -package darkoverload.itzip.feature.resume.repository.qualification.custom; - -import darkoverload.itzip.feature.resume.entity.QualificationEntity; - -import java.util.List; - -public interface CustomQualification { - - List findByAllResumeId(Long resumeId); - -} diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/qualification/custom/CustomQualificationImpl.java b/src/main/java/darkoverload/itzip/feature/resume/repository/qualification/custom/CustomQualificationImpl.java deleted file mode 100644 index 960724c6..00000000 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/qualification/custom/CustomQualificationImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package darkoverload.itzip.feature.resume.repository.qualification.custom; - - -import com.querydsl.jpa.impl.JPAQueryFactory; -import darkoverload.itzip.feature.resume.entity.QQualificationEntity; -import darkoverload.itzip.feature.resume.entity.QualificationEntity; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Repository; - -import java.util.List; - -@Repository -@RequiredArgsConstructor -public class CustomQualificationImpl implements CustomQualification { - - private final JPAQueryFactory queryFactory; - - private final QQualificationEntity qualification = QQualificationEntity.qualificationEntity; - - - @Override - public List findByAllResumeId(Long resumeId) { - return queryFactory.selectFrom(qualification) - .where(qualification.resume.id.eq(resumeId)).fetch(); - } -} diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/resume/ResumeReadJpaRepository.java b/src/main/java/darkoverload/itzip/feature/resume/repository/resume/ResumeReadJpaRepository.java index a3a6d437..ca492c9c 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/resume/ResumeReadJpaRepository.java +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/resume/ResumeReadJpaRepository.java @@ -9,4 +9,5 @@ public interface ResumeReadJpaRepository extends JpaRepository, CustomResumeReadRepository { List searchResumeInfos(String search, Pageable pageable); + } diff --git a/src/main/java/darkoverload/itzip/feature/resume/repository/resume/custom/CustomResumeRepositoryImpl.java b/src/main/java/darkoverload/itzip/feature/resume/repository/resume/custom/CustomResumeRepositoryImpl.java index 45591721..5834d24a 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/repository/resume/custom/CustomResumeRepositoryImpl.java +++ b/src/main/java/darkoverload/itzip/feature/resume/repository/resume/custom/CustomResumeRepositoryImpl.java @@ -1,30 +1,16 @@ package darkoverload.itzip.feature.resume.repository.resume.custom; -import com.querydsl.core.Tuple; -import com.querydsl.core.types.Expression; -import com.querydsl.core.types.OrderSpecifier; -import com.querydsl.core.types.dsl.BooleanExpression; -import com.querydsl.core.types.dsl.Expressions; import com.querydsl.core.types.dsl.PathBuilder; import com.querydsl.jpa.impl.JPAQueryFactory; import com.querydsl.jpa.impl.JPAUpdateClause; -import darkoverload.itzip.feature.resume.controller.response.SearchResumeResponse; import darkoverload.itzip.feature.resume.domain.resume.Resume; import darkoverload.itzip.feature.resume.entity.QResumeEntity; -import darkoverload.itzip.feature.resume.entity.ResumeEntity; import lombok.RequiredArgsConstructor; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageImpl; -import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Repository; -import org.springframework.util.StringUtils; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Objects; - -import static org.springframework.util.StringUtils.*; @Repository diff --git a/src/main/java/darkoverload/itzip/feature/resume/service/resume/ResumeReadService.java b/src/main/java/darkoverload/itzip/feature/resume/service/resume/ResumeReadService.java index 47942b0d..f73a712a 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/service/resume/ResumeReadService.java +++ b/src/main/java/darkoverload/itzip/feature/resume/service/resume/ResumeReadService.java @@ -1,5 +1,6 @@ package darkoverload.itzip.feature.resume.service.resume; +import darkoverload.itzip.feature.resume.controller.response.GetResumeDetailsResponse; import darkoverload.itzip.feature.resume.controller.response.SearchResumeResponse; import darkoverload.itzip.feature.resume.domain.resume.Resume; import org.springframework.data.domain.Pageable; diff --git a/src/main/java/darkoverload/itzip/feature/resume/service/resume/ResumeReadServiceImpl.java b/src/main/java/darkoverload/itzip/feature/resume/service/resume/ResumeReadServiceImpl.java index 0e2f0ae2..599be827 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/service/resume/ResumeReadServiceImpl.java +++ b/src/main/java/darkoverload/itzip/feature/resume/service/resume/ResumeReadServiceImpl.java @@ -1,11 +1,12 @@ package darkoverload.itzip.feature.resume.service.resume; +import darkoverload.itzip.feature.resume.controller.response.GetResumeDetailsResponse; import darkoverload.itzip.feature.resume.controller.response.SearchResumeResponse; import darkoverload.itzip.feature.resume.domain.career.Career; import darkoverload.itzip.feature.resume.domain.career.Careers; import darkoverload.itzip.feature.resume.domain.resume.Resume; import darkoverload.itzip.feature.resume.domain.resume.Resumes; -import darkoverload.itzip.feature.resume.service.resume.port.CareerRepository; +import darkoverload.itzip.feature.resume.service.resume.port.career.CareerReadRepository; import darkoverload.itzip.feature.resume.service.resume.port.resume.ResumeReadRepository; import darkoverload.itzip.global.config.response.code.CommonExceptionCode; import darkoverload.itzip.global.config.response.exception.RestApiException; @@ -23,7 +24,7 @@ public class ResumeReadServiceImpl implements ResumeReadService{ private final ResumeReadRepository resumeReadRepository; - private final CareerRepository careerRepository; + private final CareerReadRepository careerReadRepository; @Override public List searchResumeInfos(String search, Pageable pageable) { @@ -33,7 +34,7 @@ public List searchResumeInfos(String search, Pageable page List careers = new ArrayList<>(); resumeMaps.keySet() - .forEach(resumeId -> careers.addAll(careerRepository.findAllByResumeId(resumeId))); + .forEach(resumeId -> careers.addAll(careerReadRepository.findAllByResumeId(resumeId))); return Careers.of(careers).orElseThrow(() -> new RestApiException(CommonExceptionCode.JOB_INFO_NOT_FOUND)).searchResumeMakeWorkPeriod(resumeMaps).stream().map(SearchResumeResponse::from).collect(Collectors.toList()); } diff --git a/src/main/java/darkoverload/itzip/feature/resume/service/resume/ResumeServiceImpl.java b/src/main/java/darkoverload/itzip/feature/resume/service/resume/ResumeServiceImpl.java index 6c479418..d157851e 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/service/resume/ResumeServiceImpl.java +++ b/src/main/java/darkoverload/itzip/feature/resume/service/resume/ResumeServiceImpl.java @@ -21,7 +21,20 @@ import darkoverload.itzip.feature.resume.domain.qualification.Qualifications; import darkoverload.itzip.feature.resume.domain.resume.Resume; import darkoverload.itzip.feature.resume.domain.resume.ResumeDetails; -import darkoverload.itzip.feature.resume.service.resume.port.*; +import darkoverload.itzip.feature.resume.service.resume.port.achievement.AchievementReadRepository; +import darkoverload.itzip.feature.resume.service.resume.port.achievement.AchievementRepository; +import darkoverload.itzip.feature.resume.service.resume.port.activity.ActivityReadRepository; +import darkoverload.itzip.feature.resume.service.resume.port.activity.ActivityRepository; +import darkoverload.itzip.feature.resume.service.resume.port.career.CareerReadRepository; +import darkoverload.itzip.feature.resume.service.resume.port.career.CareerRepository; +import darkoverload.itzip.feature.resume.service.resume.port.education.EducationReadRepository; +import darkoverload.itzip.feature.resume.service.resume.port.education.EducationRepository; +import darkoverload.itzip.feature.resume.service.resume.port.language.LanguageReadRepository; +import darkoverload.itzip.feature.resume.service.resume.port.language.LanguageRepository; +import darkoverload.itzip.feature.resume.service.resume.port.myskill.MySkillReadRepository; +import darkoverload.itzip.feature.resume.service.resume.port.myskill.MySkillRepository; +import darkoverload.itzip.feature.resume.service.resume.port.qualification.QualificationReadRepository; +import darkoverload.itzip.feature.resume.service.resume.port.qualification.QualificationRepository; import darkoverload.itzip.feature.resume.service.resume.port.resume.ResumeRepository; import lombok.Builder; import lombok.RequiredArgsConstructor; @@ -42,18 +55,25 @@ public class ResumeServiceImpl implements ResumeService { private final ResumeRepository resumeRepository; private final EducationRepository educationRepository; + private final EducationReadRepository educationReadRepository; private final LanguageRepository languageRepository; + private final LanguageReadRepository languageReadRepository; private final QualificationRepository qualificationRepository; + private final QualificationReadRepository qualificationReadRepository; private final MySkillRepository mySkillRepository; + private final MySkillReadRepository mySkillReadRepository; private final CareerRepository careerRepository; + private final CareerReadRepository careerReadRepository; private final AchievementRepository achievementRepository; + private final AchievementReadRepository achievementReadRepository; private final ActivityRepository activityRepository; + private final ActivityReadRepository activityReadRepository; @Transactional @Override @@ -150,7 +170,7 @@ private ResumeDetails update(UpdateResumeRequest request, Resume resume) { Optional careers = Careers.of(request.getCareers(), resume); Optional dataCareers = Optional.empty(); if (careers.isPresent()) { - List allCareers = careerRepository.findAllByResumeId(resume.getResumeId()); + List allCareers = careerReadRepository.findAllByResumeId(resume.getResumeId()); careerRepository.deleteAllCareers(careers.get().deleteCareers(allCareers)); dataCareers = Careers.of(careerRepository.update(careers.get().getCareers())); } @@ -159,7 +179,7 @@ private ResumeDetails update(UpdateResumeRequest request, Resume resume) { Optional achievements = Achievements.of(request.getAchievements(), resume); Optional dataAchievements = Optional.empty(); if (achievements.isPresent()) { - List allAchievements = achievementRepository.findAllByResumeId(resume.getResumeId()); + List allAchievements = achievementReadRepository.findAllByResumeId(resume.getResumeId()); achievementRepository.deleteAllAchievements(achievements.get().deleteAchievements(allAchievements)); dataAchievements = Achievements.of(achievementRepository.update(achievements.get().getAchievements())); } @@ -168,7 +188,7 @@ private ResumeDetails update(UpdateResumeRequest request, Resume resume) { Optional activities = Activities.of(request.getActivities(), resume); Optional dataActivities = Optional.empty(); if (activities.isPresent()) { - List allActivities = activityRepository.findAllByResumeId(resume.getResumeId()); + List allActivities = activityReadRepository.findAllByResumeId(resume.getResumeId()); activityRepository.deleteAllActivities(activities.get().deleteActivities(allActivities)); dataActivities = Activities.of(activityRepository.update(activities.get().getActivities())); } @@ -177,7 +197,7 @@ private ResumeDetails update(UpdateResumeRequest request, Resume resume) { Optional languages = Languages.of(request.getLanguages(), resume); Optional dataLanguages = Optional.empty(); if (languages.isPresent()) { - List allLanguages = languageRepository.findAllByResumeId(resume.getResumeId()); + List allLanguages = languageReadRepository.findAllByResumeId(resume.getResumeId()); languageRepository.deleteAllLanguages(languages.get().deleteLanguages(allLanguages)); dataLanguages = Languages.of(languageRepository.update(languages.get().getLanguages())); } @@ -186,7 +206,7 @@ private ResumeDetails update(UpdateResumeRequest request, Resume resume) { Optional educations = Educations.of(request.getEducations(), resume); Optional dataEducations = Optional.empty(); if (educations.isPresent()) { - List allEducations = educationRepository.findAllByResumeId(resume.getResumeId()); + List allEducations = educationReadRepository.findAllByResumeId(resume.getResumeId()); educationRepository.deleteAllEducations(educations.get().deleteEducations(allEducations)); dataEducations = Educations.of(educationRepository.update(educations.get().getEducations())); } @@ -195,7 +215,7 @@ private ResumeDetails update(UpdateResumeRequest request, Resume resume) { Optional mySkills = MySkills.of(request.getMySkills(), resume); Optional dataMySkills = Optional.empty(); if (mySkills.isPresent()) { - List allMySkills = mySkillRepository.findByAllResumeId(resume.getResumeId()); + List allMySkills = mySkillReadRepository.findByAllResumeId(resume.getResumeId()); mySkillRepository.deleteAllMySkills(mySkills.get().deleteMySkills(allMySkills)); dataMySkills = MySkills.of(mySkillRepository.update(mySkills.get().getMySkills())); } @@ -204,7 +224,7 @@ private ResumeDetails update(UpdateResumeRequest request, Resume resume) { Optional qualifications = Qualifications.of(request.getQualifications(), resume); Optional dataQualifications = Optional.empty(); if (qualifications.isPresent()) { - List allQualifications = qualificationRepository.findByAllResumeId(resume.getResumeId()); + List allQualifications = qualificationReadRepository.findAllByResumeId(resume.getResumeId()); qualificationRepository.deleteAllQualifications(qualifications.get().deleteQualifications(allQualifications)); dataQualifications = Qualifications.of(qualificationRepository.update(qualifications.get().getQualifications())); } diff --git a/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/achievement/AchievementReadRepository.java b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/achievement/AchievementReadRepository.java new file mode 100644 index 00000000..6134a633 --- /dev/null +++ b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/achievement/AchievementReadRepository.java @@ -0,0 +1,10 @@ +package darkoverload.itzip.feature.resume.service.resume.port.achievement; + +import darkoverload.itzip.feature.resume.domain.achievement.Achievement; + +import java.util.List; + +public interface AchievementReadRepository { + List findAllByResumeId(Long resumeId); + +} diff --git a/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/AchievementRepository.java b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/achievement/AchievementRepository.java similarity index 80% rename from src/main/java/darkoverload/itzip/feature/resume/service/resume/port/AchievementRepository.java rename to src/main/java/darkoverload/itzip/feature/resume/service/resume/port/achievement/AchievementRepository.java index 20eb084f..6d805dfc 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/AchievementRepository.java +++ b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/achievement/AchievementRepository.java @@ -1,4 +1,4 @@ -package darkoverload.itzip.feature.resume.service.resume.port; +package darkoverload.itzip.feature.resume.service.resume.port.achievement; import darkoverload.itzip.feature.resume.domain.achievement.Achievement; import darkoverload.itzip.feature.resume.domain.resume.Resume; @@ -6,8 +6,6 @@ import java.util.List; public interface AchievementRepository { - List findAllByResumeId(Long resumeId); - Achievement save(Achievement achievement); List update(List achievements); diff --git a/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/activity/ActivityReadRepository.java b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/activity/ActivityReadRepository.java new file mode 100644 index 00000000..242655bc --- /dev/null +++ b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/activity/ActivityReadRepository.java @@ -0,0 +1,10 @@ +package darkoverload.itzip.feature.resume.service.resume.port.activity; + +import darkoverload.itzip.feature.resume.domain.activity.Activity; + +import java.util.List; + +public interface ActivityReadRepository { + List findAllByResumeId(Long resumeId); + +} diff --git a/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/ActivityRepository.java b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/activity/ActivityRepository.java similarity index 72% rename from src/main/java/darkoverload/itzip/feature/resume/service/resume/port/ActivityRepository.java rename to src/main/java/darkoverload/itzip/feature/resume/service/resume/port/activity/ActivityRepository.java index 2ad7e9c1..f31fe9de 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/ActivityRepository.java +++ b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/activity/ActivityRepository.java @@ -1,4 +1,4 @@ -package darkoverload.itzip.feature.resume.service.resume.port; +package darkoverload.itzip.feature.resume.service.resume.port.activity; import darkoverload.itzip.feature.resume.domain.activity.Activity; import darkoverload.itzip.feature.resume.domain.resume.Resume; @@ -6,14 +6,10 @@ import java.util.List; public interface ActivityRepository { - List findAllByResumeId(Long resumeId); - Activity save(Activity activity); List update(List activities); - void deleteAllByIds(List ids); - List saveAll(List activities); void deleteAllActivities(List deleteActivities); diff --git a/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/career/CareerReadRepository.java b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/career/CareerReadRepository.java new file mode 100644 index 00000000..c4a31044 --- /dev/null +++ b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/career/CareerReadRepository.java @@ -0,0 +1,10 @@ +package darkoverload.itzip.feature.resume.service.resume.port.career; + +import darkoverload.itzip.feature.resume.domain.career.Career; + +import java.util.List; + +public interface CareerReadRepository { + List findAllByResumeId(Long resumeId); + +} diff --git a/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/CareerRepository.java b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/career/CareerRepository.java similarity index 78% rename from src/main/java/darkoverload/itzip/feature/resume/service/resume/port/CareerRepository.java rename to src/main/java/darkoverload/itzip/feature/resume/service/resume/port/career/CareerRepository.java index 481b347a..5b5a9e4f 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/CareerRepository.java +++ b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/career/CareerRepository.java @@ -1,4 +1,4 @@ -package darkoverload.itzip.feature.resume.service.resume.port; +package darkoverload.itzip.feature.resume.service.resume.port.career; import darkoverload.itzip.feature.resume.domain.career.Career; import darkoverload.itzip.feature.resume.domain.resume.Resume; @@ -6,8 +6,6 @@ public interface CareerRepository { - List findAllByResumeId(Long resumeId); - Career save(Career career); List update(List careers); diff --git a/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/education/EducationReadRepository.java b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/education/EducationReadRepository.java new file mode 100644 index 00000000..c5793703 --- /dev/null +++ b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/education/EducationReadRepository.java @@ -0,0 +1,9 @@ +package darkoverload.itzip.feature.resume.service.resume.port.education; + +import darkoverload.itzip.feature.resume.domain.education.Education; + +import java.util.List; + +public interface EducationReadRepository { + List findAllByResumeId(Long resumeId); +} diff --git a/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/EducationRepository.java b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/education/EducationRepository.java similarity index 81% rename from src/main/java/darkoverload/itzip/feature/resume/service/resume/port/EducationRepository.java rename to src/main/java/darkoverload/itzip/feature/resume/service/resume/port/education/EducationRepository.java index 2b36bbec..008405fc 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/EducationRepository.java +++ b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/education/EducationRepository.java @@ -1,4 +1,4 @@ -package darkoverload.itzip.feature.resume.service.resume.port; +package darkoverload.itzip.feature.resume.service.resume.port.education; import darkoverload.itzip.feature.resume.domain.education.Education; import darkoverload.itzip.feature.resume.domain.language.Language; @@ -7,7 +7,7 @@ import java.util.List; public interface EducationRepository { - List findAllByResumeId(Long resumeId); + List update(List educations); diff --git a/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/language/LanguageReadRepository.java b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/language/LanguageReadRepository.java new file mode 100644 index 00000000..560219c5 --- /dev/null +++ b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/language/LanguageReadRepository.java @@ -0,0 +1,9 @@ +package darkoverload.itzip.feature.resume.service.resume.port.language; + +import darkoverload.itzip.feature.resume.domain.language.Language; + +import java.util.List; + +public interface LanguageReadRepository { + List findAllByResumeId(Long resumeId); +} diff --git a/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/LanguageRepository.java b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/language/LanguageRepository.java similarity index 81% rename from src/main/java/darkoverload/itzip/feature/resume/service/resume/port/LanguageRepository.java rename to src/main/java/darkoverload/itzip/feature/resume/service/resume/port/language/LanguageRepository.java index 56685ee0..1ae446b4 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/LanguageRepository.java +++ b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/language/LanguageRepository.java @@ -1,4 +1,4 @@ -package darkoverload.itzip.feature.resume.service.resume.port; +package darkoverload.itzip.feature.resume.service.resume.port.language; import darkoverload.itzip.feature.resume.domain.language.Language; import darkoverload.itzip.feature.resume.domain.resume.Resume; @@ -7,7 +7,6 @@ import java.util.List; public interface LanguageRepository { - List findAllByResumeId(Long resumeId); List update(List languages); diff --git a/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/myskill/MySkillReadRepository.java b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/myskill/MySkillReadRepository.java new file mode 100644 index 00000000..bd66081c --- /dev/null +++ b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/myskill/MySkillReadRepository.java @@ -0,0 +1,10 @@ +package darkoverload.itzip.feature.resume.service.resume.port.myskill; + +import darkoverload.itzip.feature.resume.domain.myskill.MySkill; + +import java.util.List; + +public interface MySkillReadRepository { + List findByAllResumeId(Long resumeId); + +} diff --git a/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/MySkillRepository.java b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/myskill/MySkillRepository.java similarity index 78% rename from src/main/java/darkoverload/itzip/feature/resume/service/resume/port/MySkillRepository.java rename to src/main/java/darkoverload/itzip/feature/resume/service/resume/port/myskill/MySkillRepository.java index cfd5fe48..faf0dd63 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/MySkillRepository.java +++ b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/myskill/MySkillRepository.java @@ -1,4 +1,4 @@ -package darkoverload.itzip.feature.resume.service.resume.port; +package darkoverload.itzip.feature.resume.service.resume.port.myskill; import darkoverload.itzip.feature.resume.domain.myskill.MySkill; import darkoverload.itzip.feature.resume.domain.resume.Resume; @@ -6,8 +6,6 @@ import java.util.List; public interface MySkillRepository { - List findByAllResumeId(Long resumeId); - List update(List mySkills); MySkill save(MySkill mySkill); diff --git a/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/qualification/QualificationReadRepository.java b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/qualification/QualificationReadRepository.java new file mode 100644 index 00000000..eb611c65 --- /dev/null +++ b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/qualification/QualificationReadRepository.java @@ -0,0 +1,10 @@ +package darkoverload.itzip.feature.resume.service.resume.port.qualification; + +import darkoverload.itzip.feature.resume.domain.qualification.Qualification; + +import java.util.List; + +public interface QualificationReadRepository { + List findAllByResumeId(Long resumeId); + +} diff --git a/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/QualificationRepository.java b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/qualification/QualificationRepository.java similarity index 81% rename from src/main/java/darkoverload/itzip/feature/resume/service/resume/port/QualificationRepository.java rename to src/main/java/darkoverload/itzip/feature/resume/service/resume/port/qualification/QualificationRepository.java index f7be9a97..f5aac517 100644 --- a/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/QualificationRepository.java +++ b/src/main/java/darkoverload/itzip/feature/resume/service/resume/port/qualification/QualificationRepository.java @@ -1,4 +1,4 @@ -package darkoverload.itzip.feature.resume.service.resume.port; +package darkoverload.itzip.feature.resume.service.resume.port.qualification; import darkoverload.itzip.feature.resume.domain.qualification.Qualification; import darkoverload.itzip.feature.resume.domain.resume.Resume; @@ -6,7 +6,7 @@ import java.util.List; public interface QualificationRepository { - List findByAllResumeId(Long resumeId); + List update(List qualifications); diff --git a/src/test/java/darkoverload/itzip/feature/resume/domain/language/LanguageTest.java b/src/test/java/darkoverload/itzip/feature/resume/domain/language/LanguageTest.java index f22e9f31..ec253705 100644 --- a/src/test/java/darkoverload/itzip/feature/resume/domain/language/LanguageTest.java +++ b/src/test/java/darkoverload/itzip/feature/resume/domain/language/LanguageTest.java @@ -15,7 +15,7 @@ class LanguageTest { void 언어_정적_메소드_저장_성공_테스트() { Language language = Language.update(new LanguageDto("잇집토익상", "780", LocalDateTime.of(2024, 10, 25, 0, 0), 1L), new Resume("itzip@gmail.com", "010-9955-0938", "잇집 park입니다.", "잇집 park 입니다. 저는 코딩이 좋아요.", PublicOnOff.YES, List.of("https://itzip.com"), null, 1L, 1L, null)); - Assertions.assertThat(language).isEqualTo(new Language(Resume.builder().email("itzip@gmail.com").phone("010-9955-0938").subject("잇집 park입니다.").publicOnOff(PublicOnOff.YES).links(List.of("https://itzip.com")).introduction("잇집 park 입니다. 저는 코딩이 좋아요.").userId(1L).resumeId(1L).build(), "잇집토익상", "780",LocalDateTime.of(2024, 10, 25, 0, 0), 1L)); + Assertions.assertThat(language).isEqualTo(new Language(Resume.builder().email("itzip@gmail.com").phone("010-9955-0938").subject("잇집 park입니다.").publicOnOff(PublicOnOff.YES).links(List.of("https://itzip.com")).introduction("잇집 park 입니다. 저는 코딩이 좋아요.").userId(1L).resumeId(1L).build(), "잇집토익상", "780", LocalDateTime.of(2024, 10, 25, 0, 0), 1L)); } } \ No newline at end of file diff --git a/src/test/java/darkoverload/itzip/feature/resume/mock/FakeAchievementRepository.java b/src/test/java/darkoverload/itzip/feature/resume/mock/FakeAchievementRepository.java index b3533b5f..9d2e15be 100644 --- a/src/test/java/darkoverload/itzip/feature/resume/mock/FakeAchievementRepository.java +++ b/src/test/java/darkoverload/itzip/feature/resume/mock/FakeAchievementRepository.java @@ -2,7 +2,7 @@ import darkoverload.itzip.feature.resume.domain.achievement.Achievement; import darkoverload.itzip.feature.resume.domain.resume.Resume; -import darkoverload.itzip.feature.resume.service.resume.port.AchievementRepository; +import darkoverload.itzip.feature.resume.service.resume.port.achievement.AchievementRepository; import java.util.ArrayList; import java.util.Collections; @@ -14,7 +14,6 @@ public class FakeAchievementRepository implements AchievementRepository { private final AtomicLong autoGeneratedId = new AtomicLong(0); private final List data = Collections.synchronizedList(new ArrayList<>()); - @Override public List findAllByResumeId(Long resumeId) { return data.stream() .filter(achievement -> Objects.equals(achievement.getResume().getResumeId(), resumeId)) diff --git a/src/test/java/darkoverload/itzip/feature/resume/mock/FakeActivityRepository.java b/src/test/java/darkoverload/itzip/feature/resume/mock/FakeActivityRepository.java index 9868ea01..593bbb67 100644 --- a/src/test/java/darkoverload/itzip/feature/resume/mock/FakeActivityRepository.java +++ b/src/test/java/darkoverload/itzip/feature/resume/mock/FakeActivityRepository.java @@ -1,9 +1,8 @@ package darkoverload.itzip.feature.resume.mock; -import darkoverload.itzip.feature.resume.domain.achievement.Achievement; import darkoverload.itzip.feature.resume.domain.activity.Activity; import darkoverload.itzip.feature.resume.domain.resume.Resume; -import darkoverload.itzip.feature.resume.service.resume.port.ActivityRepository; +import darkoverload.itzip.feature.resume.service.resume.port.activity.ActivityRepository; import java.util.ArrayList; import java.util.Collections; @@ -15,7 +14,6 @@ public class FakeActivityRepository implements ActivityRepository { private final AtomicLong autoGeneratedId = new AtomicLong(0); private final List data = Collections.synchronizedList(new ArrayList<>()); - @Override public List findAllByResumeId(Long resumeId) { return data.stream() .filter(activity -> Objects.equals(activity.getResume().getResumeId(), resumeId)).toList(); @@ -47,13 +45,6 @@ public List update(List activities) { return saveAll(activities); } - @Override - public void deleteAllByIds(List ids) { - for(Long id : ids) { - data.removeIf(item -> Objects.equals(item.getActivityId(), id)); - } - } - @Override public List saveAll(List activities) { return activities.stream().map(this::save).toList(); diff --git a/src/test/java/darkoverload/itzip/feature/resume/mock/FakeCareerRepository.java b/src/test/java/darkoverload/itzip/feature/resume/mock/FakeCareerRepository.java index 3243176f..23538bac 100644 --- a/src/test/java/darkoverload/itzip/feature/resume/mock/FakeCareerRepository.java +++ b/src/test/java/darkoverload/itzip/feature/resume/mock/FakeCareerRepository.java @@ -2,7 +2,7 @@ import darkoverload.itzip.feature.resume.domain.career.Career; import darkoverload.itzip.feature.resume.domain.resume.Resume; -import darkoverload.itzip.feature.resume.service.resume.port.CareerRepository; +import darkoverload.itzip.feature.resume.service.resume.port.career.CareerRepository; import java.util.ArrayList; import java.util.Collections; @@ -14,7 +14,7 @@ public class FakeCareerRepository implements CareerRepository { private final AtomicLong autoGeneratedId = new AtomicLong(0); private final List data = Collections.synchronizedList(new ArrayList<>()); - @Override + public List findAllByResumeId(Long resumeId) { return data.stream() .filter(career -> Objects.equals(career.getResume().getResumeId(), resumeId)) diff --git a/src/test/java/darkoverload/itzip/feature/resume/mock/FakeEducationRepository.java b/src/test/java/darkoverload/itzip/feature/resume/mock/FakeEducationRepository.java index 68f5e350..51c86615 100644 --- a/src/test/java/darkoverload/itzip/feature/resume/mock/FakeEducationRepository.java +++ b/src/test/java/darkoverload/itzip/feature/resume/mock/FakeEducationRepository.java @@ -2,8 +2,7 @@ import darkoverload.itzip.feature.resume.domain.education.Education; import darkoverload.itzip.feature.resume.domain.resume.Resume; -import darkoverload.itzip.feature.resume.service.resume.port.EducationRepository; -import lombok.extern.slf4j.Slf4j; +import darkoverload.itzip.feature.resume.service.resume.port.education.EducationRepository; import java.util.ArrayList; import java.util.Collections; @@ -16,7 +15,6 @@ public class FakeEducationRepository implements EducationRepository { private final AtomicLong autoGeneratedId = new AtomicLong(0); private final List data = Collections.synchronizedList(new ArrayList<>()); - @Override public List findAllByResumeId(Long resumeId) { return data.stream() .filter(education -> Objects.equals(education.getResume().getResumeId(), resumeId)) diff --git a/src/test/java/darkoverload/itzip/feature/resume/mock/FakeLanguageRepository.java b/src/test/java/darkoverload/itzip/feature/resume/mock/FakeLanguageRepository.java index 903c1780..6265ee6d 100644 --- a/src/test/java/darkoverload/itzip/feature/resume/mock/FakeLanguageRepository.java +++ b/src/test/java/darkoverload/itzip/feature/resume/mock/FakeLanguageRepository.java @@ -1,9 +1,8 @@ package darkoverload.itzip.feature.resume.mock; -import darkoverload.itzip.feature.resume.domain.education.Education; import darkoverload.itzip.feature.resume.domain.language.Language; import darkoverload.itzip.feature.resume.domain.resume.Resume; -import darkoverload.itzip.feature.resume.service.resume.port.LanguageRepository; +import darkoverload.itzip.feature.resume.service.resume.port.language.LanguageRepository; import java.util.ArrayList; import java.util.Collections; @@ -16,7 +15,6 @@ public class FakeLanguageRepository implements LanguageRepository { private final AtomicLong autoGeneratedId = new AtomicLong(0); private final List data = Collections.synchronizedList(new ArrayList<>()); - @Override public List findAllByResumeId(Long resumeId) { return data.stream() .filter(language -> Objects.equals(language.getResume().getResumeId(), resumeId)) diff --git a/src/test/java/darkoverload/itzip/feature/resume/mock/FakeMySkillRepository.java b/src/test/java/darkoverload/itzip/feature/resume/mock/FakeMySkillRepository.java index e522d119..d06f9518 100644 --- a/src/test/java/darkoverload/itzip/feature/resume/mock/FakeMySkillRepository.java +++ b/src/test/java/darkoverload/itzip/feature/resume/mock/FakeMySkillRepository.java @@ -1,9 +1,8 @@ package darkoverload.itzip.feature.resume.mock; -import darkoverload.itzip.feature.resume.domain.language.Language; import darkoverload.itzip.feature.resume.domain.myskill.MySkill; import darkoverload.itzip.feature.resume.domain.resume.Resume; -import darkoverload.itzip.feature.resume.service.resume.port.MySkillRepository; +import darkoverload.itzip.feature.resume.service.resume.port.myskill.MySkillRepository; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -14,7 +13,6 @@ public class FakeMySkillRepository implements MySkillRepository { private final AtomicLong autoGeneratedId = new AtomicLong(0); private final List data = Collections.synchronizedList(new ArrayList<>()); - @Override public List findByAllResumeId(Long resumeId) { return data.stream() .filter(mySkill -> Objects.equals(mySkill.getMySkillId(), resumeId)) diff --git a/src/test/java/darkoverload/itzip/feature/resume/mock/FakeQualificationRepository.java b/src/test/java/darkoverload/itzip/feature/resume/mock/FakeQualificationRepository.java index 272c7aee..639793c2 100644 --- a/src/test/java/darkoverload/itzip/feature/resume/mock/FakeQualificationRepository.java +++ b/src/test/java/darkoverload/itzip/feature/resume/mock/FakeQualificationRepository.java @@ -2,7 +2,7 @@ import darkoverload.itzip.feature.resume.domain.qualification.Qualification; import darkoverload.itzip.feature.resume.domain.resume.Resume; -import darkoverload.itzip.feature.resume.service.resume.port.QualificationRepository; +import darkoverload.itzip.feature.resume.service.resume.port.qualification.QualificationRepository; import java.util.ArrayList; import java.util.Collections; @@ -14,7 +14,6 @@ public class FakeQualificationRepository implements QualificationRepository { private final AtomicLong autoGeneratedId = new AtomicLong(0); private final List data = Collections.synchronizedList(new ArrayList<>()); - @Override public List findByAllResumeId(Long resumeId) { return data.stream() .filter(qualification -> Objects.equals(qualification.getResume().getResumeId(), resumeId)) diff --git a/src/test/java/darkoverload/itzip/feature/resume/mock/FakeResumeRepository.java b/src/test/java/darkoverload/itzip/feature/resume/mock/FakeResumeRepository.java index d7500e5f..dcfda6c1 100644 --- a/src/test/java/darkoverload/itzip/feature/resume/mock/FakeResumeRepository.java +++ b/src/test/java/darkoverload/itzip/feature/resume/mock/FakeResumeRepository.java @@ -2,7 +2,6 @@ import darkoverload.itzip.feature.resume.domain.resume.Resume; import darkoverload.itzip.feature.resume.service.resume.port.resume.ResumeRepository; -import org.springframework.data.domain.Pageable; import java.util.ArrayList; import java.util.Collections; diff --git a/src/test/java/darkoverload/itzip/feature/resume/mock/TestResumeContainer.java b/src/test/java/darkoverload/itzip/feature/resume/mock/TestResumeContainer.java index 17b661bc..46996d89 100644 --- a/src/test/java/darkoverload/itzip/feature/resume/mock/TestResumeContainer.java +++ b/src/test/java/darkoverload/itzip/feature/resume/mock/TestResumeContainer.java @@ -2,7 +2,13 @@ import darkoverload.itzip.feature.resume.service.resume.ResumeService; import darkoverload.itzip.feature.resume.service.resume.ResumeServiceImpl; -import darkoverload.itzip.feature.resume.service.resume.port.*; +import darkoverload.itzip.feature.resume.service.resume.port.achievement.AchievementRepository; +import darkoverload.itzip.feature.resume.service.resume.port.activity.ActivityRepository; +import darkoverload.itzip.feature.resume.service.resume.port.career.CareerRepository; +import darkoverload.itzip.feature.resume.service.resume.port.education.EducationRepository; +import darkoverload.itzip.feature.resume.service.resume.port.language.LanguageRepository; +import darkoverload.itzip.feature.resume.service.resume.port.myskill.MySkillRepository; +import darkoverload.itzip.feature.resume.service.resume.port.qualification.QualificationRepository; import darkoverload.itzip.feature.resume.service.resume.port.resume.ResumeRepository; import lombok.Builder; diff --git a/src/test/java/darkoverload/itzip/feature/resume/repository/achievement/AchievementReadRepositoryTest.java b/src/test/java/darkoverload/itzip/feature/resume/repository/achievement/AchievementReadRepositoryTest.java new file mode 100644 index 00000000..4e239893 --- /dev/null +++ b/src/test/java/darkoverload/itzip/feature/resume/repository/achievement/AchievementReadRepositoryTest.java @@ -0,0 +1,46 @@ +package darkoverload.itzip.feature.resume.repository.achievement; + +import darkoverload.itzip.feature.resume.code.PublicOnOff; +import darkoverload.itzip.feature.resume.entity.AchievementEntity; +import darkoverload.itzip.feature.resume.entity.ResumeEntity; +import darkoverload.itzip.feature.resume.service.resume.port.achievement.AchievementReadRepository; +import darkoverload.itzip.global.config.querydsl.TestQueryDslConfig; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.jdbc.Sql; +import org.springframework.test.context.jdbc.SqlGroup; + +import java.time.LocalDateTime; +import java.util.List; + +import static org.assertj.core.api.Assertions.*; + +@DataJpaTest +@SqlGroup({@Sql(value = "/sql/achievement/delete-achievement-data.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD), @Sql(value = "/sql/achievement/achievement-repository-data.sql", executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD)}) +@ContextConfiguration(classes = {TestQueryDslConfig.class}) +@ActiveProfiles("test") +public class AchievementReadRepositoryTest { + + @Autowired + private AchievementReadJpaRepository repository; + + private ResumeEntity resume = null; + + @BeforeEach + void setUp() { + resume = ResumeEntity.builder().id(1L).email("itzip@gmail.com").imageUrl("https://itzip.com").introduction("잇집입니다.").links(List.of("잇집이력서")).phone("010-2355-9839").publicOnOff(PublicOnOff.YES).subject("잇집 홍길동").userId(1L).build(); + } + + @Test + void 수상_이력_정보_리스트_조회() { + List allByResumeId = repository.findAllByResumeId(1L); + + assertThat(allByResumeId).isEqualTo(List.of(AchievementEntity.builder().id(1L).achievementDate(LocalDateTime.of(2024, 8, 20, 10, 10, 10)).content("자바 잘해서줍니다.").name("잇집자바상").organization("잇집").resume(resume).build(), AchievementEntity.builder().id(2L).achievementDate(LocalDateTime.of(2024, 6, 20, 9, 10, 10)).content("코틀린 잘해서줌").name("잇집코틀린상").organization("잇집").resume(resume).build())); + } + +} diff --git a/src/test/java/darkoverload/itzip/feature/resume/repository/activity/ActivityReadRepositoryTest.java b/src/test/java/darkoverload/itzip/feature/resume/repository/activity/ActivityReadRepositoryTest.java new file mode 100644 index 00000000..af3e6a2a --- /dev/null +++ b/src/test/java/darkoverload/itzip/feature/resume/repository/activity/ActivityReadRepositoryTest.java @@ -0,0 +1,44 @@ +package darkoverload.itzip.feature.resume.repository.activity; + +import darkoverload.itzip.feature.resume.code.PublicOnOff; +import darkoverload.itzip.feature.resume.entity.ActivityEntity; +import darkoverload.itzip.feature.resume.entity.ResumeEntity; +import darkoverload.itzip.global.config.querydsl.TestQueryDslConfig; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.jdbc.Sql; +import org.springframework.test.context.jdbc.SqlGroup; + +import java.time.LocalDateTime; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +@DataJpaTest +@SqlGroup({@Sql(value = "/sql/activity/delete-activity-data.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD), @Sql(value = "/sql/activity/activity-repository-data.sql", executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD)}) +@ContextConfiguration(classes = {TestQueryDslConfig.class}) +@ActiveProfiles("test") +public class ActivityReadRepositoryTest { + + @Autowired + private ActivityReadJpaRepository repository; + + private ResumeEntity resume = null; + + @BeforeEach + void setUp() { + resume = ResumeEntity.builder().id(1L).email("itzip@gmail.com").imageUrl("https://itzip.com").introduction("잇집입니다.").links(List.of("잇집이력서")).phone("010-2355-9839").publicOnOff(PublicOnOff.YES).subject("잇집 홍길동").userId(1L).build(); + } + + @Test + void 활동_이력_리스트_조회() { + List allByResumeId = repository.findAllByResumeId(1L); + + assertThat(allByResumeId).isEqualTo(List.of(ActivityEntity.builder().id(1L).content("무박 3일동안 해커톤 통해서 우수상 수상하였습니다.").name("해커톤상").startDate(LocalDateTime.of(2024, 8, 20, 10, 0, 5)).endDate(LocalDateTime.of(2024, 8, 23, 10, 0, 5)).resume(resume).build(), ActivityEntity.builder().id(2L).content("동아리 활동").name("코딩 동아리").startDate(LocalDateTime.of(2022, 11, 20, 10, 0, 5)).endDate(LocalDateTime.of(2023, 11, 20, 10, 0, 5)).resume(resume).build())); + } + +} diff --git a/src/test/java/darkoverload/itzip/feature/resume/repository/career/CareerReadRepositoryTest.java b/src/test/java/darkoverload/itzip/feature/resume/repository/career/CareerReadRepositoryTest.java new file mode 100644 index 00000000..4c51d174 --- /dev/null +++ b/src/test/java/darkoverload/itzip/feature/resume/repository/career/CareerReadRepositoryTest.java @@ -0,0 +1,44 @@ +package darkoverload.itzip.feature.resume.repository.career; + +import darkoverload.itzip.feature.resume.code.PublicOnOff; +import darkoverload.itzip.feature.resume.entity.CareerEntity; +import darkoverload.itzip.feature.resume.entity.ResumeEntity; +import darkoverload.itzip.global.config.querydsl.TestQueryDslConfig; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.jdbc.Sql; +import org.springframework.test.context.jdbc.SqlGroup; + +import java.time.LocalDateTime; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +@DataJpaTest +@SqlGroup({@Sql(value = "/sql/career/delete-career-data.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD), @Sql(value = "/sql/career/career-repository-data.sql", executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD)}) +@ContextConfiguration(classes = {TestQueryDslConfig.class}) +@ActiveProfiles("test") +public class CareerReadRepositoryTest { + + @Autowired + private CareerReadJpaRepository repository; + + private ResumeEntity resume = null; + + @BeforeEach + void setUp() { + resume = ResumeEntity.builder().id(1L).email("itzip@gmail.com").imageUrl("https://itzip.com").introduction("잇집입니다.").links(List.of("잇집이력서")).phone("010-2355-9839").publicOnOff(PublicOnOff.YES).subject("잇집 홍길동").userId(1L).build(); + } + + @Test + void 경력_정보_리스트_조회() { + List allByResumeId = repository.findAllByResumeId(1L); + + assertThat(allByResumeId).isEqualTo(List.of(CareerEntity.builder().id(1L).startDate(LocalDateTime.of(2022, 9, 26, 23, 59, 59)).endDate(LocalDateTime.of(2024, 9, 26, 23, 59, 59)).careerPosition("사원").companyName("잇집회사").department("IT팀").resume(resume).build(), CareerEntity.builder().id(2L).startDate(LocalDateTime.of(2021, 5, 26, 23, 59, 59)).endDate(LocalDateTime.of(2022, 5, 26, 23, 59, 59)).careerPosition("사원").companyName("텔회사").department("IT팀").resume(resume).build())); + } + +} diff --git a/src/test/java/darkoverload/itzip/feature/resume/repository/education/EducationReadRepositoryTest.java b/src/test/java/darkoverload/itzip/feature/resume/repository/education/EducationReadRepositoryTest.java new file mode 100644 index 00000000..92385429 --- /dev/null +++ b/src/test/java/darkoverload/itzip/feature/resume/repository/education/EducationReadRepositoryTest.java @@ -0,0 +1,45 @@ +package darkoverload.itzip.feature.resume.repository.education; + +import darkoverload.itzip.feature.resume.code.PublicOnOff; +import darkoverload.itzip.feature.resume.entity.EducationEntity; +import darkoverload.itzip.feature.resume.entity.ResumeEntity; +import darkoverload.itzip.global.config.querydsl.TestQueryDslConfig; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.jdbc.Sql; +import org.springframework.test.context.jdbc.SqlGroup; + +import java.time.LocalDateTime; +import java.util.List; + +import static org.assertj.core.api.Assertions.*; + +@DataJpaTest +@SqlGroup({@Sql(value = "/sql/education/delete-education-data.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD), @Sql(value = "/sql/education/education-repository-data.sql", executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD)}) +@ContextConfiguration(classes = {TestQueryDslConfig.class}) +@ActiveProfiles("test") +public class EducationReadRepositoryTest { + + @Autowired + private EducationReadJpaRepository repository; + + private ResumeEntity resume = null; + + @BeforeEach + void setUp() { + resume = ResumeEntity.builder().id(1L).email("itzip@gmail.com").imageUrl("https://itzip.com").introduction("잇집입니다.").links(List.of("잇집이력서")).phone("010-2355-9839").publicOnOff(PublicOnOff.YES).subject("잇집 홍길동").userId(1L).build(); + } + + @Test + void 교육_정보_리스트_조회() { + List allByResumeId = repository.findAllByResumeId(1L); + + assertThat(allByResumeId).isEqualTo(List.of(EducationEntity.builder().id(1L).major("컴퓨터공학과").schoolName("잇집대학교").startDate(LocalDateTime.of(2024, 3, 26, 23, 59, 59)).endDate(LocalDateTime.of(2020, 3, 11, 23, 59, 59)).resume(resume).build(), EducationEntity.builder().id(2L).major("백엔드 과정").schoolName("잇집테킷").startDate(LocalDateTime.of(2024, 9, 28, 23, 59, 59)).endDate(LocalDateTime.of(2024, 3, 26, 23, 59, 59)).resume(resume).build())); + + } +} diff --git a/src/test/java/darkoverload/itzip/feature/resume/repository/language/LanguageReadReadRepositoryTest.java b/src/test/java/darkoverload/itzip/feature/resume/repository/language/LanguageReadReadRepositoryTest.java new file mode 100644 index 00000000..67dc4321 --- /dev/null +++ b/src/test/java/darkoverload/itzip/feature/resume/repository/language/LanguageReadReadRepositoryTest.java @@ -0,0 +1,45 @@ +package darkoverload.itzip.feature.resume.repository.language; + +import darkoverload.itzip.feature.resume.code.PublicOnOff; +import darkoverload.itzip.feature.resume.entity.LanguageEntity; +import darkoverload.itzip.feature.resume.entity.ResumeEntity; +import darkoverload.itzip.global.config.querydsl.TestQueryDslConfig; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.jdbc.Sql; +import org.springframework.test.context.jdbc.SqlGroup; + +import java.time.LocalDateTime; +import java.util.List; + +import static org.assertj.core.api.Assertions.*; + +@DataJpaTest +@SqlGroup({@Sql(value = "/sql/language/delete-language-data.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD), @Sql(value = "/sql/language/language-repository-data.sql", executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD)}) +@ContextConfiguration(classes = {TestQueryDslConfig.class}) +@ActiveProfiles("test") +public class LanguageReadReadRepositoryTest { + + @Autowired + private LanguageReadJpaRepository repository; + + private ResumeEntity resume = null; + + @BeforeEach + void setUp() { + resume = ResumeEntity.builder().id(1L).email("itzip@gmail.com").imageUrl("https://itzip.com").introduction("잇집입니다.").links(List.of("잇집이력서")).phone("010-2355-9839").publicOnOff(PublicOnOff.YES).subject("잇집 홍길동").userId(1L).build(); + } + + @Test + void 언어_취득_리스트_조회() { + List allByResumeId = repository.findAllByResumeId(1L); + + assertThat(allByResumeId).isEqualTo(List.of(LanguageEntity.builder().id(1L).name("TOEIC").acquisitionDate(LocalDateTime.of(2022, 11, 20, 10, 0, 5)).score("900").resume(resume).build(), LanguageEntity.builder().id(2L).name("TOEFL").acquisitionDate(LocalDateTime.of(2022, 11, 29, 10, 0, 5)).score("860").resume(resume).build())); + } + +} diff --git a/src/test/java/darkoverload/itzip/feature/resume/repository/myskill/MySkillReadRepositoryTest.java b/src/test/java/darkoverload/itzip/feature/resume/repository/myskill/MySkillReadRepositoryTest.java new file mode 100644 index 00000000..3fd24d21 --- /dev/null +++ b/src/test/java/darkoverload/itzip/feature/resume/repository/myskill/MySkillReadRepositoryTest.java @@ -0,0 +1,44 @@ +package darkoverload.itzip.feature.resume.repository.myskill; + +import darkoverload.itzip.feature.resume.code.PublicOnOff; +import darkoverload.itzip.feature.resume.entity.MySkillEntity; +import darkoverload.itzip.feature.resume.entity.ResumeEntity; +import darkoverload.itzip.global.config.querydsl.TestQueryDslConfig; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.jdbc.Sql; +import org.springframework.test.context.jdbc.SqlGroup; + +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +@DataJpaTest +@SqlGroup({@Sql(value = "/sql/myskill/delete-myskill-data.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD), @Sql(value = "/sql/myskill/myskill-repository-data.sql", executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD)}) +@ContextConfiguration(classes = {TestQueryDslConfig.class}) +@ActiveProfiles("test") +public class MySkillReadRepositoryTest { + + @Autowired + private MySkillReadJpaRepository repository; + + private ResumeEntity resume = null; + + @BeforeEach + void setUp() { + resume = ResumeEntity.builder().id(1L).email("itzip@gmail.com").imageUrl("https://itzip.com").introduction("잇집입니다.").links(List.of("잇집이력서")).phone("010-2355-9839").publicOnOff(PublicOnOff.YES).subject("잇집 홍길동").userId(1L).build(); + } + + @Test + void 기술_정보_리스트_조회() { + List allByResumeId = repository.findAllByResumeId(1L); + + assertThat(allByResumeId).isEqualTo(List.of(MySkillEntity.builder().id(1L).name("Java").resume(resume).build(), MySkillEntity.builder().id(2L).name("PostgreSQL").resume(resume).build())); + + } + +} diff --git a/src/test/java/darkoverload/itzip/feature/resume/repository/qualification/QualificationRepositoryTest.java b/src/test/java/darkoverload/itzip/feature/resume/repository/qualification/QualificationRepositoryTest.java new file mode 100644 index 00000000..b5a13ae6 --- /dev/null +++ b/src/test/java/darkoverload/itzip/feature/resume/repository/qualification/QualificationRepositoryTest.java @@ -0,0 +1,44 @@ +package darkoverload.itzip.feature.resume.repository.qualification; + +import darkoverload.itzip.feature.resume.code.PublicOnOff; +import darkoverload.itzip.feature.resume.entity.QualificationEntity; +import darkoverload.itzip.feature.resume.entity.ResumeEntity; +import darkoverload.itzip.global.config.querydsl.TestQueryDslConfig; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.jdbc.Sql; +import org.springframework.test.context.jdbc.SqlGroup; + +import java.time.LocalDateTime; +import java.util.List; + +import static org.assertj.core.api.Assertions.*; + + +@DataJpaTest +@SqlGroup({@Sql(value = "/sql/qualification/delete-qualification-data.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD), @Sql(value = "/sql/qualification/qualification-repository-data.sql", executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD)}) +@ContextConfiguration(classes = {TestQueryDslConfig.class}) +@ActiveProfiles("test") +public class QualificationRepositoryTest { + + @Autowired + private QualificationReadJpaRepository repository; + private ResumeEntity resume = null; + + @BeforeEach + void setUp() { + resume = ResumeEntity.builder().id(1L).email("itzip@gmail.com").imageUrl("https://itzip.com").introduction("잇집입니다.").links(List.of("잇집이력서")).phone("010-2355-9839").publicOnOff(PublicOnOff.YES).subject("잇집 홍길동").userId(1L).build(); + } + + @Test + void 자격증_리스트_조회() { + List allByResumeId = repository.findAllByResumeId(1L); + + assertThat(allByResumeId).isEqualTo(List.of(QualificationEntity.builder().id(1L).name("정보처리기사").organization("잇집기관").qualificationDate(LocalDateTime.of(2024, 8, 20, 23, 59, 59)).resume(resume).build(), QualificationEntity.builder().id(2L).name("자바처리 자격증").organization("잇집기관").qualificationDate(LocalDateTime.of(2024, 8, 9, 23, 59, 59)).resume(resume).build())); + } +} diff --git a/src/test/java/darkoverload/itzip/feature/resume/repository/resume/ResumeReadRepositoryTest.java b/src/test/java/darkoverload/itzip/feature/resume/repository/resume/ResumeReadRepositoryTest.java index 8e6682ee..5dcd9ee8 100644 --- a/src/test/java/darkoverload/itzip/feature/resume/repository/resume/ResumeReadRepositoryTest.java +++ b/src/test/java/darkoverload/itzip/feature/resume/repository/resume/ResumeReadRepositoryTest.java @@ -4,10 +4,7 @@ import darkoverload.itzip.feature.resume.code.PublicOnOff; import darkoverload.itzip.feature.resume.entity.ResumeEntity; import darkoverload.itzip.global.config.querydsl.TestQueryDslConfig; -import jakarta.persistence.AttributeConverter; -import jakarta.persistence.Converter; import lombok.extern.slf4j.Slf4j; -import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; @@ -18,12 +15,9 @@ import org.springframework.test.context.jdbc.Sql; import org.springframework.test.context.jdbc.SqlGroup; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; import java.util.List; -import static org.assertj.core.api.Assertions.*; +import static org.assertj.core.api.Assertions.assertThat; @Slf4j @@ -37,13 +31,13 @@ class ResumeReadRepositoryTest { @Autowired - ResumeReadJpaRepository resumeReadRepository; + private ResumeReadJpaRepository repository; @Test void 이력서_페이징_조회() { PageRequest page = PageRequest.of(0, 10, Sort.by("modify_date").descending()); - List resumes = resumeReadRepository.searchResumeInfos(null, page); + List resumes = repository.searchResumeInfos(null, page); assertThat(resumes).isEqualTo(List.of( new ResumeEntity(1L, 1L, "itzip@gmail.com", "https://itzip.com", "잇집 홍길동", "010-2355-9839", "잇집입니다.", List.of("잇집이력서"), PublicOnOff.YES), diff --git a/src/test/resources/sql/achievement/achievement-repository-data.sql b/src/test/resources/sql/achievement/achievement-repository-data.sql new file mode 100644 index 00000000..ec574c58 --- /dev/null +++ b/src/test/resources/sql/achievement/achievement-repository-data.sql @@ -0,0 +1,14 @@ +insert into users (id, authority, email, nickname, password, image_url, create_date, modify_date) +values (1L, 'USER', 'itzip@gmail.com', 'doudoudou', 'asdfg1234', 'https://itzip.com', '2024-07-22 10:00:05', + '2024-07-22 10:00:05'); + +insert into resumes (id, email, image_url, introduction, links, phone, public_on_off, subject, user_id, create_date, + modify_date) +values (1L, 'itzip@gmail.com', 'https://itzip.com', '잇집입니다.', '잇집이력서', '010-2355-9839', 'YES', '잇집 홍길동', 1L, + '2024-09-26 10:00:05', '2024-09-26 10:00:05'); + +insert into achievements (id, create_date, modify_date, achievement_date, content, name, organization, resume_id) +values (1L, '2024-11-26 23:59:59', '2024-11-26 23:59:59', '2024-08-20 10:10:10', '자바 잘해서줍니다.', '잇집자바상', '잇집', 1L); + +insert into achievements (id, create_date, modify_date, achievement_date, content, name, organization, resume_id) +values (2L, '2024-11-26 23:59:59', '2024-11-26 23:59:59', '2024-06-20 09:10:10', '코틀린 잘해서줌', '잇집코틀린상', '잇집', 1L); \ No newline at end of file diff --git a/src/test/resources/sql/achievement/delete-achievement-data.sql b/src/test/resources/sql/achievement/delete-achievement-data.sql new file mode 100644 index 00000000..a28eeffe --- /dev/null +++ b/src/test/resources/sql/achievement/delete-achievement-data.sql @@ -0,0 +1,3 @@ +delete from achievements where 1; +delete from resumes where 1; +delete from users where 1; \ No newline at end of file diff --git a/src/test/resources/sql/activity/activity-repository-data.sql b/src/test/resources/sql/activity/activity-repository-data.sql new file mode 100644 index 00000000..272ed7ad --- /dev/null +++ b/src/test/resources/sql/activity/activity-repository-data.sql @@ -0,0 +1,12 @@ +insert into users (id, authority, email, nickname, password, image_url, create_date, modify_date) +values (1L, 'USER', 'itzip@gmail.com', 'doudoudou', 'asdfg1234', 'https://itzip.com', '2024-07-22 10:00:05', + '2024-07-22 10:00:05'); + +insert into resumes (id, email, image_url, introduction, links, phone, public_on_off, subject, user_id, + create_date, modify_date) +values (1L, 'itzip@gmail.com', 'https://itzip.com', '잇집입니다.', '잇집이력서', '010-2355-9839', 'YES', '잇집 홍길동', + 1L, '2024-09-26 10:00:05', '2024-09-26 10:00:05'); + +insert into activities (id, create_date, modify_date, content, name, start_date, end_date, resume_id) values(1L, '2024-09-26 10:00:05', '2024-09-26 10:00:05', '무박 3일동안 해커톤 통해서 우수상 수상하였습니다.', '해커톤상', '2024-08-20 10:00:05', '2024-08-23 10:00:05', 1L); + +insert into activities (id, create_date, modify_date, content, name, start_date, end_date, resume_id) values(2L, '2024-11-26 10:00:05', '2024-11-26 10:00:05', '동아리 활동', '코딩 동아리', '2022-11-20 10:00:05', '2023-11-20 10:00:05', 1L); \ No newline at end of file diff --git a/src/test/resources/sql/activity/delete-activity-data.sql b/src/test/resources/sql/activity/delete-activity-data.sql new file mode 100644 index 00000000..995ae306 --- /dev/null +++ b/src/test/resources/sql/activity/delete-activity-data.sql @@ -0,0 +1,3 @@ +delete from activities where 1; +delete from resumes where 1; +delete from users where 1; \ No newline at end of file diff --git a/src/test/resources/sql/career/career-repository-data.sql b/src/test/resources/sql/career/career-repository-data.sql new file mode 100644 index 00000000..c61975af --- /dev/null +++ b/src/test/resources/sql/career/career-repository-data.sql @@ -0,0 +1,13 @@ +insert into users (id, authority, email, nickname, password, image_url, create_date, modify_date) +values (1L, 'USER', 'itzip@gmail.com', 'doudoudou', 'asdfg1234', 'https://itzip.com', '2024-07-22 10:00:05', + '2024-07-22 10:00:05'); + +insert into resumes (id, email, image_url, introduction, links, phone, public_on_off, subject, user_id, + create_date, modify_date) +values (1L, 'itzip@gmail.com', 'https://itzip.com', '잇집입니다.', '잇집이력서', '010-2355-9839', 'YES', '잇집 홍길동', + 1L, '2024-09-26 10:00:05', '2024-09-26 10:00:05'); + +insert into careers(id, create_date, modify_date, career_position, company_name, department, end_date, start_date, resume_id) values(1L, '2024-11-26 23:59:59', '2024-11-26 23:59:59', '사원', '잇집회사', 'IT팀', '2024-09-26 23:59:59', '2022-09-26 23:59:59', 1L); + +insert into careers(id, create_date, modify_date, career_position, company_name, department, end_date, start_date, resume_id) values(2L, '2024-11-26 23:59:59', '2024-11-26 23:59:59', '사원', '텔회사', 'IT팀', '2022-05-26 23:59:59', '2021-05-26 23:59:59', 1L); + diff --git a/src/test/resources/sql/career/delete-career-data.sql b/src/test/resources/sql/career/delete-career-data.sql new file mode 100644 index 00000000..58d8909e --- /dev/null +++ b/src/test/resources/sql/career/delete-career-data.sql @@ -0,0 +1,3 @@ +delete from careers where 1; +delete from resumes where 1; +delete from users where 1; diff --git a/src/test/resources/sql/education/delete-education-data.sql b/src/test/resources/sql/education/delete-education-data.sql new file mode 100644 index 00000000..a71fd966 --- /dev/null +++ b/src/test/resources/sql/education/delete-education-data.sql @@ -0,0 +1,3 @@ +delete from educations where 1; +delete from resumes where 1; +delete from users where 1; \ No newline at end of file diff --git a/src/test/resources/sql/education/education-repository-data.sql b/src/test/resources/sql/education/education-repository-data.sql new file mode 100644 index 00000000..e4b56263 --- /dev/null +++ b/src/test/resources/sql/education/education-repository-data.sql @@ -0,0 +1,12 @@ +insert into users (id, authority, email, nickname, password, image_url, create_date, modify_date) +values (1L, 'USER', 'itzip@gmail.com', 'doudoudou', 'asdfg1234', 'https://itzip.com', '2024-07-22 10:00:05', + '2024-07-22 10:00:05'); + +insert into resumes (id, email, image_url, introduction, links, phone, public_on_off, subject, user_id, + create_date, modify_date) +values (1L, 'itzip@gmail.com', 'https://itzip.com', '잇집입니다.', '잇집이력서', '010-2355-9839', 'YES', '잇집 홍길동', + 1L, '2024-09-26 10:00:05', '2024-09-26 10:00:05'); + +insert into educations(id, create_date, modify_date, end_date, major, school_name, start_date, resume_id) values(1L, '2024-11-26 23:59:59', '2024-11-26 23:59:59', '2020-03-11 23:59:59', '컴퓨터공학과', '잇집대학교','2024-03-26 23:59:59', 1L); + +insert into educations(id, create_date, modify_date, end_date, major, school_name, start_date, resume_id) values(2L, '2024-11-26 23:59:59', '2024-11-26 23:59:59', '2024-03-26 23:59:59', '백엔드 과정', '잇집테킷','2024-09-28 23:59:59', 1L); diff --git a/src/test/resources/sql/language/delete-language-data.sql b/src/test/resources/sql/language/delete-language-data.sql new file mode 100644 index 00000000..23110c73 --- /dev/null +++ b/src/test/resources/sql/language/delete-language-data.sql @@ -0,0 +1,3 @@ +delete from languages where 1; +delete from resumes where 1; +delete from users where 1; \ No newline at end of file diff --git a/src/test/resources/sql/language/language-repository-data.sql b/src/test/resources/sql/language/language-repository-data.sql new file mode 100644 index 00000000..a87623e6 --- /dev/null +++ b/src/test/resources/sql/language/language-repository-data.sql @@ -0,0 +1,12 @@ +insert into users (id, authority, email, nickname, password, image_url, create_date, modify_date) +values (1L, 'USER', 'itzip@gmail.com', 'doudoudou', 'asdfg1234', 'https://itzip.com', '2024-07-22 10:00:05', + '2024-07-22 10:00:05'); + +insert into resumes (id, email, image_url, introduction, links, phone, public_on_off, subject, user_id, + create_date, modify_date) +values (1L, 'itzip@gmail.com', 'https://itzip.com', '잇집입니다.', '잇집이력서', '010-2355-9839', 'YES', '잇집 홍길동', + 1L, '2024-09-26 10:00:05', '2024-09-26 10:00:05'); + +insert into languages (id, create_date, modify_date, acquisition_date, name, score, resume_id) values(1L, '2024-09-26 10:00:05', '2024-09-26 10:00:05', '2022-11-20 10:00:05', 'TOEIC', 900, 1L); + +insert into languages (id, create_date, modify_date, acquisition_date, name, score, resume_id) values(2L, '2024-11-26 10:00:05', '2024-11-26 10:00:05', '2022-11-29 10:00:05', 'TOEFL', 860, 1L); \ No newline at end of file diff --git a/src/test/resources/sql/myskill/delete-myskill-data.sql b/src/test/resources/sql/myskill/delete-myskill-data.sql new file mode 100644 index 00000000..8b3cecd1 --- /dev/null +++ b/src/test/resources/sql/myskill/delete-myskill-data.sql @@ -0,0 +1,3 @@ +delete from my_skills where 1; +delete from resumes where 1; +delete from users where 1; \ No newline at end of file diff --git a/src/test/resources/sql/myskill/myskill-repository-data.sql b/src/test/resources/sql/myskill/myskill-repository-data.sql new file mode 100644 index 00000000..bac24478 --- /dev/null +++ b/src/test/resources/sql/myskill/myskill-repository-data.sql @@ -0,0 +1,12 @@ +insert into users (id, authority, email, nickname, password, image_url, create_date, modify_date) +values (1L, 'USER', 'itzip@gmail.com', 'doudoudou', 'asdfg1234', 'https://itzip.com', '2024-07-22 10:00:05', + '2024-07-22 10:00:05'); + +insert into resumes (id, email, image_url, introduction, links, phone, public_on_off, subject, user_id, create_date, modify_date) +values (1L, 'itzip@gmail.com', 'https://itzip.com', '잇집입니다.', '잇집이력서', '010-2355-9839', 'YES', '잇집 홍길동', 1L, '2024-09-26 10:00:05', '2024-09-26 10:00:05'); + +insert into my_skills (id, create_date, modify_date, name, resume_id) +values (1L, '2024-09-26 10:00:05', '2024-09-26 10:00:05', 'Java', 1L); + +insert into my_skills (id, create_date, modify_date, name, resume_id) +values (2L, '2024-11-26 10:00:05', '2024-11-26 10:00:05', 'PostgreSQL', 1L); \ No newline at end of file diff --git a/src/test/resources/sql/qualification/delete-qualification-data.sql b/src/test/resources/sql/qualification/delete-qualification-data.sql new file mode 100644 index 00000000..dae9dfc9 --- /dev/null +++ b/src/test/resources/sql/qualification/delete-qualification-data.sql @@ -0,0 +1,3 @@ +delete from qualifications where 1; +delete from resumes where 1; +delete from users where 1; \ No newline at end of file diff --git a/src/test/resources/sql/qualification/qualification-repository-data.sql b/src/test/resources/sql/qualification/qualification-repository-data.sql new file mode 100644 index 00000000..41c2b356 --- /dev/null +++ b/src/test/resources/sql/qualification/qualification-repository-data.sql @@ -0,0 +1,12 @@ +insert into users (id, authority, email, nickname, password, image_url, create_date, modify_date) +values (1L, 'USER', 'itzip@gmail.com', 'doudoudou', 'asdfg1234', 'https://itzip.com', '2024-07-22 10:00:05', + '2024-07-22 10:00:05'); + +insert into resumes (id, email, image_url, introduction, links, phone, public_on_off, subject, user_id, create_date, modify_date) +values (1L, 'itzip@gmail.com', 'https://itzip.com', '잇집입니다.', '잇집이력서', '010-2355-9839', 'YES', '잇집 홍길동', 1L, '2024-09-26 10:00:05', '2024-09-26 10:00:05'); + +insert into qualifications (id, create_date, modify_date, name, organization, qualification_date, resume_id) +values (1L, '2024-09-26 10:00:05', '2024-09-26 10:00:05', '정보처리기사', '잇집기관', '2024-08-20 23:59:59', 1L); + +insert into qualifications (id, create_date, modify_date, name, organization, qualification_date, resume_id) +values (2L, '2024-11-26 10:00:05', '2024-11-26 10:00:05', '자바처리 자격증', '잇집기관', '2024-08-09 23:59:59', 1L); \ No newline at end of file