Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weโ€™ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

๐Ÿ› ๏ธ ๋ฆฌํŒฉํ† ๋ง : CQRS ํŒจํ„ด Read ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๋ถ„๋ฆฌ ์ž‘์—… ๋ฐ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€ #178

Merged
merged 1 commit into from
Nov 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,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;
Expand All @@ -30,7 +29,6 @@
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.stream.Collectors;


@Slf4j
Expand Down Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package darkoverload.itzip.feature.resume.controller.response;

public record GetResumeDetailsResponse() {

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
@Setter
@Getter
@ToString
@EqualsAndHashCode
public class MySkill {
// ์ด๋ ฅ์„œ
private Resume resume;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Table(name="achievements")
@EqualsAndHashCode(callSuper = false)
public class AchievementEntity extends AuditingFields {

@Id
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Table(name="careers")
@EqualsAndHashCode(callSuper = false)
public class CareerEntity extends AuditingFields {

@Id
Expand Down Expand Up @@ -50,4 +51,5 @@ public Career convertToDomain(){
.endDate(this.endDate)
.build();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Table(name="educations")
@EqualsAndHashCode(callSuper = false)
@ToString
public class EducationEntity extends AuditingFields {

@Id
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Table(name="languages")
@EqualsAndHashCode(callSuper = false)
public class LanguageEntity extends AuditingFields {

@Id
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Table(name="MySkills")
@EqualsAndHashCode(callSuper = false)
public class MySkillEntity extends AuditingFields {

@Id
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Table(name="qualifications")
@EqualsAndHashCode(callSuper = false)
public class QualificationEntity extends AuditingFields {

@Id
Expand Down
Original file line number Diff line number Diff line change
@@ -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<AchievementEntity, Long> , CustomAchievementRepository {

public interface AchievementJpaRepository extends JpaRepository<AchievementEntity, Long> {

}
Original file line number Diff line number Diff line change
@@ -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<AchievementEntity, Long> {
List<AchievementEntity> findAllByResumeId(Long resumeId);

}
Original file line number Diff line number Diff line change
@@ -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<Achievement> findAllByResumeId(Long resumeId) {
return repository.findAllByResumeId(resumeId).stream().map(AchievementEntity::convertToDomain).toList();
}

}
Original file line number Diff line number Diff line change
@@ -1,26 +1,19 @@
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
public class AchievementRepositoryImpl implements AchievementRepository {

private final AchievementJpaRepository repository;

@Override
public List<Achievement> findAllByResumeId(Long resumeId) {
return repository.findAllByResumeId(resumeId).stream().map(AchievementEntity::convertToDomain).toList();
}

@Override
public Achievement save(Achievement achievement) {
return repository.save(achievement.toEntity()).convertToDomain();
Expand All @@ -47,22 +40,4 @@ public void deleteAllAchievements(List<Achievement> deleteAchievements) {
repository.deleteAll(deleteAchievements.stream().map(Achievement::toEntity).toList());
}

private List<Long> getDeleteAchievementIds(List<Achievement> achievements, Resume resume) {
List<Long> achievementIds = getAchievementIds(resume.getResumeId());

List<Long> updateIds = getUpdateAchievementIds(achievements);

return achievementIds.stream()
.filter(id -> !updateIds.contains(id)).toList();
}

private List<Long> getUpdateAchievementIds(List<Achievement> achievements) {
return achievements.stream().filter(Objects::nonNull).map(Achievement::getAchievementId).toList();
}

private List<Long> getAchievementIds(Long resumeId) {
return findAllByResumeId(resumeId).stream().map(Achievement::getAchievementId).toList();
}


}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -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<ActivityEntity, Long> , CustomActivityRepository {
public interface ActivityJpaRepository extends JpaRepository<ActivityEntity, Long> {

}
Original file line number Diff line number Diff line change
@@ -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 <ActivityEntity, Long> {
List<ActivityEntity> findAllByResumeId(Long id);
}
Original file line number Diff line number Diff line change
@@ -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<Activity> findAllByResumeId(Long resumeId) {
return repository.findAllByResumeId(resumeId).stream().map(ActivityEntity::convertToDomain).toList();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -17,11 +17,6 @@ public class ActivityRepositoryImpl implements ActivityRepository {

private final ActivityJpaRepository repository;

@Override
public List<Activity> findAllByResumeId(Long resumeId) {
return repository.findAllByResumeId(resumeId).stream().map(ActivityEntity::convertToDomain).toList();
}

@Override
public Activity save(Activity activity) {

Expand All @@ -33,11 +28,6 @@ public List<Activity> update(List<Activity> activities) {
return saveAll(activities);
}

@Override
public void deleteAllByIds(List<Long> ids) {
repository.deleteAllById(ids);
}

@Override
public List<Activity> saveAll(List<Activity> activities) {
List<ActivityEntity> activityEntities = activities.stream().map(Activity::toEntity).toList();
Expand All @@ -49,20 +39,4 @@ public void deleteAllActivities(List<Activity> deleteActivities) {
repository.deleteAll(deleteActivities.stream().map(Activity::toEntity).toList());
}

private List<Long> getDeleteActivityIds(List<Activity> activities, Resume resume) {
List<Long> activityIds = getActivityIds(resume.getResumeId());
List<Long> updateIds = getUpdateActivityIds(activities);

return activityIds.stream()
.filter(id -> !updateIds.contains(id)).toList();
}

private List<Long> getUpdateActivityIds(List<Activity> activities) {
return activities.stream().filter(Objects::nonNull).map(Activity::getActivityId).toList();
}

private List<Long> getActivityIds(Long resumeId) {
return findAllByResumeId(resumeId).stream().map(Activity::getActivityId).toList();
}

}

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -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<CareerEntity, Long> , CustomCareerRepository {
public interface CareerJpaRepository extends JpaRepository<CareerEntity, Long> {

}
Original file line number Diff line number Diff line change
@@ -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<CareerEntity, Long> {
List<CareerEntity> findAllByResumeId(Long id);

}
Loading