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

#76 [refactor] stage, 회고, 자기소개 부분 코드 리팩토링 #77

Merged
merged 4 commits into from
Sep 6, 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
@@ -1,5 +1,8 @@
package com.example.letscareer.int_review.domain.dto.response;

import com.example.letscareer.int_review.domain.model.IntReview;
import com.example.letscareer.schedule.domain.model.Schedule;
import com.example.letscareer.stage.domain.model.Stage;
import jakarta.persistence.Lob;

import java.time.LocalDate;
Expand All @@ -16,4 +19,14 @@ public record IntReviewDetailResponse(
@Lob
String feelings
) {
public static IntReviewDetailResponse from(Schedule schedule, Stage stage, IntReview intReview) {
return new IntReviewDetailResponse(
schedule.getCompany(),
schedule.getDepartment(),
stage.getType().getValue(),
stage.getDate(),
intReview.getMethod(),
intReview.getQuestions(),
intReview.getFeelings());
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.example.letscareer.int_review.domain.model;

import com.example.letscareer.int_review.domain.dto.request.PostIntReviewRequest;
import com.example.letscareer.stage.domain.model.Stage;
import com.example.letscareer.user.domain.User;
import jakarta.persistence.*;
Expand All @@ -8,7 +9,6 @@

@Entity
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
Expand All @@ -33,4 +33,14 @@ public class IntReview {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "userId", nullable = false)
private User user;

public static IntReview of(PostIntReviewRequest request, Stage stage, User user) {
return IntReview.builder()
.method(request.details())
.questions(request.qa())
.feelings(request.feel())
.stage(stage)
.user(user)
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import static com.example.letscareer.common.exception.enums.ErrorCode.*;

@Service
Expand All @@ -28,44 +27,41 @@ public class IntReviewService {
private final StageRepository stageRepository;
private final UserRepository userRepository;

@Transactional
public IntReviewDetailResponse getIntReview(Long userId, Long scheduleId, Long stageId, Long intReviewId){
User user = userRepository.findByUserId(userId)
.orElseThrow(() -> new NotFoundException(USER_NOT_FOUND_EXCEPTION));
IntReview intReview = intReviewRepository.findByIntReviewIdAndUser(intReviewId, user)
.orElseThrow(()-> new NotFoundException(INT_REVIEW_NOT_FOUND_EXCEPTION));
Schedule schedule = scheduleRepository.findByUserAndScheduleId(user, scheduleId)
.orElseThrow(() -> new NotFoundException(SCHEDULE_NOT_FOUND_EXCEPTION));
Stage stage = stageRepository.findByStageIdAndSchedule(stageId, schedule)
.orElseThrow(() -> new NotFoundException(STAGE_NOT_FOUND_EXCEPTION));
return new IntReviewDetailResponse(
schedule.getCompany(),
schedule.getDepartment(),
stage.getType().getValue(),
stage.getDate(),
intReview.getMethod(),
intReview.getQuestions(),
intReview.getFeelings()

);
User user = getUser(userId);
IntReview intReview = getIntReview(intReviewId, user);
Schedule schedule = getSchedule(scheduleId, user);
Stage stage = getStage(stageId, schedule);
return IntReviewDetailResponse.from(schedule, stage, intReview);
}

@Transactional
public void postIntReview(Long userId, Long scheduleId, Long stageId, PostIntReviewRequest request) {
User user = userRepository.findById(userId)
.orElseThrow(() -> new NotFoundException(USER_NOT_FOUND_EXCEPTION));
Schedule schedule = scheduleRepository.findByUserAndScheduleId(user, scheduleId)
.orElseThrow(() -> new NotFoundException(SCHEDULE_NOT_FOUND_EXCEPTION));
Stage stage = stageRepository.findByStageIdAndSchedule(stageId, schedule)
User user = getUser(userId);
Schedule schedule = getSchedule(scheduleId, user);
Stage stage = getStage(stageId, schedule);
IntReview intReview = IntReview.of(request, stage, user);
intReviewRepository.save(intReview);
}

private Stage getStage(Long stageId, Schedule schedule) {
return stageRepository.findByStageIdAndSchedule(stageId, schedule)
.orElseThrow(() -> new NotFoundException(STAGE_NOT_FOUND_EXCEPTION));
}

IntReview intReview = IntReview.builder()
.stage(stage)
.method(request.details())
.questions(request.qa())
.feelings(request.feel())
.user(user)
.build();
private Schedule getSchedule(Long scheduleId, User user) {
return scheduleRepository.findByUserAndScheduleId(user, scheduleId)
.orElseThrow(() -> new NotFoundException(SCHEDULE_NOT_FOUND_EXCEPTION));
}

intReviewRepository.save(intReview);
private IntReview getIntReview(Long intReviewId, User user) {
return intReviewRepository.findByIntReviewIdAndUser(intReviewId, user)
.orElseThrow(() -> new NotFoundException(INT_REVIEW_NOT_FOUND_EXCEPTION));
}

private User getUser(Long userId) {
return userRepository.findByUserId(userId)
.orElseThrow(() -> new NotFoundException(USER_NOT_FOUND_EXCEPTION));
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package com.example.letscareer.mid_review.domain.dto.response;

import com.example.letscareer.mid_review.domain.model.MidReview;
import com.example.letscareer.schedule.domain.model.Schedule;
import com.example.letscareer.stage.domain.model.Stage;
import jakarta.persistence.Lob;

import java.time.LocalDate;
Expand All @@ -15,4 +18,13 @@ public record MidReviewDetailResponse(
@Lob
String goal
) {
public static MidReviewDetailResponse from(Schedule schedule, Stage stage, MidReview midReview) {
return new MidReviewDetailResponse(
schedule.getCompany(),
schedule.getDepartment(),
stage.getType().getValue(),
stage.getDate(),
midReview.getFreeReview(),
midReview.getGoal());
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.example.letscareer.mid_review.domain.model;

import com.example.letscareer.mid_review.domain.dto.request.PostMidReviewRequest;
import com.example.letscareer.stage.domain.model.Stage;
import com.example.letscareer.user.domain.User;
import jakarta.persistence.*;
Expand Down Expand Up @@ -29,4 +30,13 @@ public class MidReview {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "userId", nullable = false)
private User user;

public static MidReview of(PostMidReviewRequest request, Stage stage, User user) {
return MidReview.builder()
.freeReview(request.free_review())
.goal(request.goal())
.stage(stage)
.user(user)
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Optional;

import static com.example.letscareer.common.exception.enums.ErrorCode.*;

@Service
Expand All @@ -28,41 +30,42 @@ public class MidReviewService {
private final StageRepository stageRepository;
private final UserRepository userRepository;

@Transactional
public MidReviewDetailResponse getMidReview(Long userId, Long scheduleId,Long stageId, Long midReviewId){
User user = userRepository.findByUserId(userId)
.orElseThrow(() -> new NotFoundException(USER_NOT_FOUND_EXCEPTION));
MidReview midReview = midReviewRepository.findByMidReviewIdAndUser(midReviewId, user)
.orElseThrow(()-> new NotFoundException(MID_REVIEW_NOT_FOUND_EXCEPTION));
Schedule schedule = scheduleRepository.findByUserAndScheduleId(user, scheduleId)
.orElseThrow(() -> new NotFoundException(SCHEDULE_NOT_FOUND_EXCEPTION));
Stage stage = stageRepository.findByStageIdAndSchedule(stageId, schedule)
.orElseThrow(() -> new NotFoundException(STAGE_NOT_FOUND_EXCEPTION));
return new MidReviewDetailResponse(
schedule.getCompany(),
schedule.getDepartment(),
stage.getType().getValue(),
stage.getDate(),
midReview.getFreeReview(),
midReview.getGoal()
);
User user = getUser(userId);
MidReview midReview = getMidReview(midReviewId, user);
Schedule schedule = getSchedule(scheduleId, user);
Stage stage = getStage(stageId, schedule);
return MidReviewDetailResponse.from(schedule, stage, midReview);
}

@Transactional
public void postMidReview(Long userId, Long scheduleId, Long stageId, PostMidReviewRequest request) {
User user = userRepository.findById(userId)
.orElseThrow(() -> new NotFoundException(USER_NOT_FOUND_EXCEPTION));
Schedule schedule = scheduleRepository.findByUserAndScheduleId(user, scheduleId)
.orElseThrow(() -> new NotFoundException(SCHEDULE_NOT_FOUND_EXCEPTION));
Stage stage = stageRepository.findByStageIdAndSchedule(stageId, schedule)
User user = getUser(userId);
Schedule schedule = getSchedule(scheduleId, user);
Stage stage = getStage(stageId, schedule);

MidReview midReview = MidReview.of(request, stage, user);
midReviewRepository.save(midReview);
}

private Stage getStage(Long stageId, Schedule schedule) {
return stageRepository.findByStageIdAndSchedule(stageId, schedule)
.orElseThrow(() -> new NotFoundException(STAGE_NOT_FOUND_EXCEPTION));
}

MidReview midReview = MidReview.builder()
.freeReview(request.free_review())
.goal(request.goal())
.stage(stage)
.user(user)
.build();
private Schedule getSchedule(Long scheduleId, User user) {
return scheduleRepository.findByUserAndScheduleId(user, scheduleId)
.orElseThrow(() -> new NotFoundException(SCHEDULE_NOT_FOUND_EXCEPTION));
}

midReviewRepository.save(midReview);
private User getUser(Long userId) {
return userRepository.findByUserId(userId)
.orElseThrow(() -> new NotFoundException(USER_NOT_FOUND_EXCEPTION));
}

private MidReview getMidReview(Long midReviewId, User user) {
return midReviewRepository.findByMidReviewIdAndUser(midReviewId, user)
.orElseThrow(() -> new NotFoundException(MID_REVIEW_NOT_FOUND_EXCEPTION));
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,17 @@
package com.example.letscareer.self_intro.domain.dto;

import com.example.letscareer.self_intro.domain.model.SelfIntro;

public record SelfIntroDTO(
String title,
int sequence,
String content) {

public static SelfIntroDTO from(SelfIntro selfIntro) {
return new SelfIntroDTO(
selfIntro.getTitle(),
selfIntro.getSequence(),
selfIntro.getContent()
);
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.example.letscareer.self_intro.domain.model;

import com.example.letscareer.self_intro.domain.dto.SelfIntroDTO;
import com.example.letscareer.stage.domain.model.Stage;
import jakarta.persistence.*;
import lombok.*;
Expand Down Expand Up @@ -27,4 +28,13 @@ public class SelfIntro {
@JoinColumn(name = "stageId")
@NotNull
private Stage stage;

public static SelfIntro of(SelfIntroDTO selfIntroDTO, Stage stage) {
return SelfIntro.builder()
.title(selfIntroDTO.title())
.sequence(selfIntroDTO.sequence())
.content(selfIntroDTO.content())
.stage(stage)
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,7 @@ public void saveSelfIntro(Long userId, Long scheduleId, Long stageId, SaveSelfIn

// 새로 들어온 자기소개서 항목을 저장한다.
for (SelfIntroDTO selfIntroDTO : request.selfIntros()) {
SelfIntro selfIntro = SelfIntro.builder()
.title(selfIntroDTO.title())
.sequence(selfIntroDTO.sequence())
.content(selfIntroDTO.content())
.stage(stage)
.build();
SelfIntro selfIntro = SelfIntro.of(selfIntroDTO, stage);
selfIntroRepository.save(selfIntro);
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
package com.example.letscareer.stage.domain.dto;

import com.example.letscareer.appealCareer.domain.model.AppealCareer;

public record AppealCareerDTO(
Long careerId,
String category,
String title
) {
public static AppealCareerDTO from(AppealCareer appealCareer) {
return new AppealCareerDTO(
appealCareer.getCareer().getCareerId(),
appealCareer.getCareer().getCategory().getValue(),
appealCareer.getCareer().getTitle()
);
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,19 @@
package com.example.letscareer.stage.domain.dto;

import com.example.letscareer.int_review.domain.model.IntReview;

public record IntReviewDTO(
Long reviewId,
String details,
String qa,
String feel
) {
public static IntReviewDTO from(IntReview intReview) {
return new IntReviewDTO(
intReview.getIntReviewId(),
intReview.getMethod(),
intReview.getQuestions(),
intReview.getFeelings()
);
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
package com.example.letscareer.stage.domain.dto;

import com.example.letscareer.mid_review.domain.model.MidReview;

public record MidReviewDTO(
Long reviewId,
String free_review,
String goal
) {
public static MidReviewDTO from(MidReview midReview) {
return new MidReviewDTO(
midReview.getMidReviewId(),
midReview.getFreeReview(),
midReview.getGoal()
);
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package com.example.letscareer.stage.domain.dto;


import com.example.letscareer.stage.domain.model.Stage;
import com.example.letscareer.stage.domain.model.Type;

public record StageDTO(
Long stageId,
int order,
Expand All @@ -10,4 +13,15 @@ public record StageDTO(
String date,
String dday
) {
public static StageDTO from(Stage stage, boolean isAlways, String dday) {
return new StageDTO(
stage.getStageId(),
stage.getOrder(),
stage.getType().getValue(),
stage.getType().equals(Type.MID) ? stage.getMidName() : "",
stage.getStatus().getValue(),
isAlways ? "" : stage.getDate().toString(),
dday
);
}
}
Loading
Loading