-
Notifications
You must be signed in to change notification settings - Fork 1
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
[#5] 공고 마감 기능 구현 #11
[#5] 공고 마감 기능 구현 #11
Conversation
1. CompanyDto 추가해서 JobPostingDetailDto에서 회사 정보 분리 2. Mock 데이터 재활용할 수 있게 factory 생성자로 생성하도록 변경 3. dto.mock.data로 Mock 데이터 분리, dto에서는 생성하는 것만 신경쓰도록 함 4. 공고 마감 API 추가
1. closeJobPosting() 추가
1. closeJobPosting() 추가 2. JobPostingUseCaseImpl 파일 분리
1. OnClosedJobPosting() 이벤트 추가 2. closed 상태 추가
1. MoreOption 위젯 추가 2. DetailMoreOptionType으로 상세 화면에서 사용할 타입 추가
1. 공고 마감 더보기 팝업 추가 2. 공고 마감 Bloc 이벤트 연결 3. 공고 마감시 뒤로가기 추가
1. OCP 원칙 준수를 위해 switch-case 문 방식에서 Factory를 이용한 방식으로 변경
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
피드백 확인 부탁드립니다.
1. nullable 대신 none 값 사용
1. ValidationResult 추가 2. JobPostingRequestEntity Extneion을 서브 파일로 분리
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
코멘트 달아주신 부분 수정 완료했습니다!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
jobPosting
접미사를 제거하고, jobPostingApi.search()
처럼 가독성있게 변경했습니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
기존의 usecase 부분에 있던 Entity의 유효성 검사 코드를 Entity로 옮기고
서브 파일로 구성했습니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
그리고 if 조건문에서 조건 A & 조건 B
처럼 가독성이 떨어지는 부분은 getter 변수로 만들어 변경했습니다!
/// 유효성 검사 결과 | ||
class ValidationResult { | ||
/// 유효성 여부 | ||
final bool isValid; | ||
|
||
/// 유효성 검사 실패 메시지 | ||
final String failMessage; | ||
|
||
ValidationResult({ | ||
required this.isValid, | ||
this.failMessage = '', | ||
}); | ||
|
||
/// 검사 성공 | ||
factory ValidationResult.success() { | ||
return ValidationResult(isValid: true); | ||
} | ||
|
||
/// 검사 실패 | ||
factory ValidationResult.fail({ | ||
required String message, | ||
}) { | ||
return ValidationResult( | ||
isValid: false, | ||
failMessage: message, | ||
); | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
유효성 검사 시, null을 반환하는 대신 ValidationResult로 관리하도록 변경해 봤습니다!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
변경 사항
DescriptionBottomSheet
추가DetailBottomSheetFactory
를 통해 공고 상세 화면에 필요한DescriptionBottomSheet
를 Factory 패턴으로 생성질문 사항
DetailBottomSheetFactory
를 적용한 이유는DetailBottomSheetType
의 각 타입에 따라 맞는 Bottom Sheet를 노출하기 위함입니다.switch-case
문으로 작성하였는데 이럴 경우 OCP 원칙을 준수하지 않는다는 말씀이 기억나서, Factory 패턴을 적용해 봤습니다.Screenshot
Screen_recording_20241023_022043.webm
close #5