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

refactor-be: ApplyForm 제출 시 필수 질문 응답 여부 확인 로직 변경 #654

Merged
merged 100 commits into from
Sep 18, 2024
Merged
Show file tree
Hide file tree
Changes from 54 commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
e2ec50b
docs: 이슈 관련 정보와 예시 추가
Chocochip101 Jul 11, 2024
1c6f377
docs: issue templates 생성
Chocochip101 Jul 11, 2024
276f15e
docs: issue templates 요구사항 ID 추가
Chocochip101 Jul 11, 2024
6aa92ab
docs: issue templates 별 개행 추가
Chocochip101 Jul 12, 2024
d4d4d9f
docs: fix issue label
Chocochip101 Jul 13, 2024
5557c96
feat: Github Action을 이용한 CI 기능 구현 (#18)
Dobby-Kim Jul 13, 2024
4af9233
chore(issue-automation): CI workflow 실행 조건 추가 및 name 한국어로 수정
Dobby-Kim Jul 14, 2024
ca6e86f
chore: slack 리뷰 요청 workflow trigger event 삭제
Dobby-Kim Jul 15, 2024
6cf2ba2
chore: PR review 요청 타겟 브랜치 main -> 전체로 변경
Dobby-Kim Jul 15, 2024
561790f
chore: PR review 요청 타겟 브랜치 변경
Dobby-Kim Jul 15, 2024
c1d0313
feat: 이슈 완료 Slack 알림 기능 구현
Dobby-Kim Jul 15, 2024
d2da9fa
chore: Slack ID env 배정 payload 수정
Dobby-Kim Jul 15, 2024
e68d923
chore: Issue closed 기능 assignee payload 수정
Dobby-Kim Jul 15, 2024
cbc8ede
feat: PR Open시 제목 prefix 설정
Dobby-Kim Jul 16, 2024
1122284
feat: AWS self-hosted runner 환경 이용 CD pipeline 구축
Dobby-Kim Jul 16, 2024
940a375
refactor: branch 자동 생성 대상 label 추가
Dobby-Kim Jul 16, 2024
848bbb3
chore: 수동 트리거 추가
Dobby-Kim Jul 16, 2024
bdf469f
fea(slack-alert): PR 리뷰 완료, Approve 슬랙 알림 기능 구현
Dobby-Kim Jul 17, 2024
3c05b4d
chore(issue-automation): issue assignee payload 수정
Dobby-Kim Jul 17, 2024
443600c
chore(actions-test): Jacoco 테스트 커버리지 검증 PR 메세지 생성 기능 추가
Dobby-Kim Jul 17, 2024
afec479
chore(actions-test): Jacoco 테스트 커버리지 검증 PR 메세지 생성 기능 추가
Dobby-Kim Jul 17, 2024
90b47a9
docs: 서비스 및 팀원 소개
Chocochip101 Jul 19, 2024
c973228
chore(CI): CI 과정 name 및 파일명 변경
Dobby-Kim Jul 19, 2024
258b305
chore(issue-auto): slack 발신 메세지 수정 및 name 변경
Dobby-Kim Jul 24, 2024
5317c59
chore(Actions-CD): backend에만 해당되는 CD workflow main branch에서 삭제
Dobby-Kim Jul 24, 2024
f74ef92
chore(Actions-issue): issue - pr 연결 기능 활성화
Dobby-Kim Jul 26, 2024
0f89b50
chore(issue-automation): Slack 사용자 ID env 제거
Dobby-Kim Jul 30, 2024
77c6044
chore(issue-automation): Slack 사용자 ID env 제거 적용 문법 수정
Dobby-Kim Jul 30, 2024
01c58f6
chore(issue-automation): 환경변수 lowercase로 변경
Dobby-Kim Jul 30, 2024
1829273
chore(issue-automation): 사용자 ID lowercase 적용
Dobby-Kim Jul 30, 2024
c26ef46
chore(issue-automation): 사용자 ID lowercase 적용
Dobby-Kim Jul 30, 2024
4c4b784
chore(issue-automation): 환경변수 lowercase 변환 문법 수정
Dobby-Kim Jul 30, 2024
abc1623
chore(issue-automation): Slack 사용자 ID lowercase 변환 문법 수정
Dobby-Kim Jul 30, 2024
41fbb2a
chore(issue-automation): 오타 수정
Dobby-Kim Jul 30, 2024
b8f804c
chore(slack): 사용자 ID 정보 JSON 보안 적용으로 제거
Dobby-Kim Jul 30, 2024
8ba13ce
chore(slack-alert): main branch에서 불필요 Actions 제거
Dobby-Kim Jul 30, 2024
4c6eabd
chore(actions-test): main branch 미사용 Actions workflow 제거
Dobby-Kim Jul 30, 2024
816d296
chore(Actions-issue): 메세지 payload 변경 및 미사용 event 제거
Dobby-Kim Jul 31, 2024
37291eb
chore(Actions-issue): 사용 uses 버전 최신화
Dobby-Kim Aug 5, 2024
03e5a65
feat-be: 불합격자 재검토 API 기능 구현 (#451)
github-actions[bot] Aug 16, 2024
b71f75a
refactor-be: assertAll 리팩터링 (#485)
github-actions[bot] Aug 16, 2024
e484ffd
feat-be(Login): 로그인 인증용 전역 인터셉터 추가 (#462)
github-actions[bot] Aug 16, 2024
13fd6ab
refactor-be(Fixture): test에 사용되는 fixture 메서드 통일 (#489)
github-actions[bot] Aug 17, 2024
e69b989
chore-be: Cookie 관련 secretkey 설정 추가 (#501)
github-actions[bot] Aug 18, 2024
91b637b
fix-be: 평가 조회 응답에 생성 날짜 필드 추가 (#453)
github-actions[bot] Aug 19, 2024
207b657
fix-be: AuthenticationInterceptor token 유효성 검사 오류 수정 (#507)
github-actions[bot] Aug 19, 2024
37efa38
feat-be: 로그인 API 구현 (#497)
github-actions[bot] Aug 19, 2024
591ec7c
refactor-be: process에 type 추가 (#486)
github-actions[bot] Aug 19, 2024
208f7f3
fix-be: 중첩 DTO 검증 추가 (#512)
github-actions[bot] Aug 19, 2024
ee7882d
feat-be: 도커 이미지 태깅 (#516)
github-actions[bot] Aug 19, 2024
c85b485
refactor-be: question의 description 필드 제거 (#517)
github-actions[bot] Aug 19, 2024
763eade
refactor-be: applicant state 수정 (#518)
github-actions[bot] Aug 19, 2024
f2ba463
feat-be: login 이후 login한 회원이 가진 동아리의 id를 반환한다. (#539)
github-actions[bot] Aug 20, 2024
3bc37a7
chore: 운영 환경 도커 이미지 태그 포맷 변경
cutehumanS2 Aug 20, 2024
905f8ae
refactor-be: 지원자 이름 및 전화번호 검증 추가 (#524)
github-actions[bot] Aug 20, 2024
1cbfefd
feat-be: 지원 폼의 장문형, 단답형 답변 길이 제한 검증 (#530)
github-actions[bot] Aug 20, 2024
15f7b1b
refactor-be: ApplicantResponse에 불합격 여부 필드 추가 (#554)
github-actions[bot] Aug 20, 2024
e5a3da8
refactor-be: 같은 수정사항 변경 시, 예외 대신 정상 응답 (#535)
github-actions[bot] Aug 20, 2024
796f3e5
refactor-be: 프로세스 목록 조회 API에 averageScore 추가 (#553)
github-actions[bot] Aug 21, 2024
d190970
fix-be: 모집 공고 시작 날짜 예외 처리 (#564)
github-actions[bot] Aug 21, 2024
99e53e9
refactor-be: 지원서 제출 시 응답 존재 유무 검증 추가 (#556)
github-actions[bot] Aug 21, 2024
b300be0
feat-be: 지원폼 질문 수정 API 생성 (#548)
github-actions[bot] Aug 21, 2024
5c846ae
refactor-be: 지원서 제출 시 응답 존재 유무 검증 추가 (#578)
HyungHoKim00 Aug 21, 2024
abca75d
feat-be: 로그인한 Member 인증 로직 추가 (#552)
github-actions[bot] Aug 21, 2024
031cb39
chore-be(Actions-Docker): 개발서버 Docker Image Versioning 적용 및 프로파일 구분 (…
github-actions[bot] Aug 21, 2024
87fa708
feat-be: 지원 폼 수정 API (#545)
github-actions[bot] Aug 21, 2024
fa85065
chore-be(Actions-CD): docker compose command 수정
Dobby-Kim Aug 21, 2024
1656ba3
chore-be(Docker): profile 제거
Dobby-Kim Aug 21, 2024
98954c3
refactor-be: 지원서 제출 시 모집 기간 검증 추가 (#576)
github-actions[bot] Aug 21, 2024
a5dd7b7
refactor(Actions): docker image tag값 github outputs job간 공유되도록 수정
Dobby-Kim Aug 21, 2024
907c60d
refactor(Actions): ubuntu timezone 서울 표준시로 변경
Dobby-Kim Aug 21, 2024
63dc4d9
refactor(Actions-CD): 운영환경 CD ubuntu timezone 서울 표준시로 변경
Dobby-Kim Aug 21, 2024
9295025
fix-be: ApplyForm 업데이트시에도 모집 기간을 검증하도록 수정 (#582)
github-actions[bot] Aug 21, 2024
255c8c7
chore-be(docker): compose 파일 depends-on 수정
Dobby-Kim Aug 21, 2024
5d995c4
chore-be(Actions): workflow 순서 수정
Dobby-Kim Aug 21, 2024
3ee9ecc
chore-be: docker compose 파일 오류 수정
Dobby-Kim Aug 21, 2024
95ff6af
fix-be: 지원 날짜가 지원 시작 날짜인 경우 지원이 불가능한 오류 수정 (#583)
github-actions[bot] Aug 21, 2024
4867cb6
feat-be: 로그아웃 기능 구현 (#579)
github-actions[bot] Aug 21, 2024
de2746a
chore-be(flyway): 개발서버 flyway 충돌 제거
Dobby-Kim Aug 21, 2024
1192901
chore-be(flyway): 개발서버 flyway 재적용 및 log 제거
Dobby-Kim Aug 21, 2024
da13354
chore-be(Actions): DB 컨테이너 분리 로직 주석처리 및 이전 방법 적용
Dobby-Kim Aug 21, 2024
d20b4c7
fix-be: 다중선택 답변은 하나로 묶어서 응답한다. (#601)
github-actions[bot] Aug 22, 2024
665dc6d
refactor-be: 선택 질문에 지원자가 응답하지 않은 경우에 빈 문자열을 저장하도록 수정 (#611)
github-actions[bot] Aug 22, 2024
d946416
fix-be(Process): 평가가 존재하는 프로세스 삭제 불가 버그 수정
HyungHoKim00 Aug 22, 2024
ba56652
fix-be: 평가 평균 점수 계산 에러 수정 (#615)
github-actions[bot] Aug 22, 2024
559c5bc
feat-be(Global Exception): 최상단 예외 필터링 핸들 추가 (#622)
github-actions[bot] Aug 22, 2024
406122b
fix-be(DataLoader): 기존 데이터로더 지원 공고 URL 수정 (#624)
github-actions[bot] Aug 23, 2024
5e64e1a
Merge remote-tracking branch 'origin/be/develop' into be/develop
HyungHoKim00 Aug 23, 2024
182a430
Merge remote-tracking branch 'origin/be/develop' into be/develop
HyungHoKim00 Sep 9, 2024
74158de
Create CNAME
Dobby-Kim Sep 9, 2024
871772c
Delete CNAME
Dobby-Kim Sep 9, 2024
1773a56
Create CNAME
Chocochip101 Sep 10, 2024
fd5f13f
Merge remote-tracking branch 'origin/be/develop' into be/develop
HyungHoKim00 Sep 11, 2024
47cdda2
chore(Pages): Delete docs directory
Dobby-Kim Sep 11, 2024
eeecc32
Create draft PR for #653
github-actions[bot] Sep 11, 2024
ea6eb48
refactor: submit의 필수 질문 응답 여부 검증 변경
HyungHoKim00 Sep 11, 2024
4b9f3a8
Merge branch 'be/develop' into be-653-FORM_SUBMIT_03
HyungHoKim00 Sep 18, 2024
92160aa
Merge remote-tracking branch 'origin' into be-653-FORM_SUBMIT_03
HyungHoKim00 Sep 18, 2024
01d6a9d
Merge remote-tracking branch 'origin/be/develop' into be/develop
HyungHoKim00 Sep 18, 2024
bee9d08
Merge branch 'be/develop' into be-653-FORM_SUBMIT_03
HyungHoKim00 Sep 18, 2024
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
4 changes: 4 additions & 0 deletions backend/src/docs/asciidoc/applyform.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ operation::applicant/submit-fail/applyform-not-found[snippets="http-request,path

operation::applicant/submit-fail/question-not-found[snippets="http-request,path-parameters,request-fields,http-response"]

==== 실패: 필수 질문에 응답하지 않음

operation::applicant/submit-fail/required-not-replied[snippets="http-request,path-parameters,request-fields,http-response"]

=== 지원폼 조회

==== 성공
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import java.time.Clock;
import java.time.LocalDate;
import java.util.List;
import java.util.Objects;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
Expand Down Expand Up @@ -61,9 +62,11 @@ public void submit(long applyFormId, ApplyFormSubmitRequest request) {
Applicant applicant = applicantService.create(applicantCreateRequest, firstProcess);

List<AnswerCreateRequest> answerCreateRequests = request.answerCreateRequest();
for (AnswerCreateRequest answerCreateRequest : answerCreateRequests) {
Question targetQuestion = questionService.findById(answerCreateRequest.questionId());
answerService.saveAnswerReplies(answerCreateRequest, targetQuestion, applicant);
List<Question> questions = questionService.findByApplyForm(applyForm);

for (Question question : questions) {
AnswerCreateRequest answerCreateRequest = getAnswerCreateRequest(question, answerCreateRequests);
answerService.saveAnswerReplies(answerCreateRequest, question, applicant);
}
}

Expand All @@ -83,6 +86,16 @@ private void validateSubmitDate(ApplyForm applyForm) {
}
}

private AnswerCreateRequest getAnswerCreateRequest(
Question question,
List<AnswerCreateRequest> answerCreateRequests
) {
return answerCreateRequests.stream()
.filter(answerCreateRequest -> Objects.equals(answerCreateRequest.questionId(), question.getId()))
.findAny()
.orElseGet(() -> new AnswerCreateRequest(question.getId(), List.of()));
HyungHoKim00 marked this conversation as resolved.
Show resolved Hide resolved
}

@Transactional
public void update(ApplyFormWriteRequest request, long applyFormId) {
ApplyForm applyForm = applyFormService.findById(applyFormId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -349,6 +349,33 @@ void submit_questionNotFound() {
.then().log().all().statusCode(400);
}

@DisplayName("지원서 폼 제출 시, 필수 질문에 응답하지 않은 경우 400를 반환한다.")
@Test
void submit_RequiredNotReplied() {
// given
Dashboard dashboard = dashboardRepository.save(DashboardFixture.backend());
processRepository.save(ProcessFixture.applyType(dashboard));
ApplyForm applyForm = applyFormRepository.save(ApplyFormFixture.backend(dashboard));
questionRepository.save(QuestionFixture.required(applyForm));

ApplyFormSubmitRequest request = new ApplyFormSubmitRequest(
new ApplicantCreateRequest("초코칩", "dev.chocochip@gmail.com", "01000000000"),
List.of(),
true
);

// when&then
RestAssured.given(spec).log().all()
.contentType(ContentType.JSON)
.body(request)
.filter(document("applicant/submit-fail/required-not-replied",
pathParameters(parameterWithName("applyFormId").description("지원폼의 id")),
requestFields(APPLICANT_SUBMIT_FIELD_DESCRIPTORS)
))
.when().post("/v1/applyform/{applyFormId}/submit", applyForm.getId())
.then().log().all().statusCode(400);
}

@DisplayName("지원서 폼 조회 시, 200을 반환한다.")
@Test
void read() {
Expand Down