Skip to content

Commit dbaca18

Browse files
suhhyun524mirageoasishyunihs
authored
Main push (#160)
* feat : front dev url 추가 * add: 아이디어톤, 해커톤 날짜 추가 (#157) * [refact] 홈페이지 수정사항 반영 (#159) * [fix] 시간 단위 수정 및 테스트 코드 작성 * [fix] 서류합격 validation 수정 * [fix] Type 변경 --------- Co-authored-by: mirageoasis <[email protected]> Co-authored-by: mirageoasis <[email protected]> Co-authored-by: JeongHyun Lee <[email protected]> Co-authored-by: Jeonghyun Lee <[email protected]>
1 parent 04252af commit dbaca18

File tree

8 files changed

+100
-64
lines changed

8 files changed

+100
-64
lines changed

src/main/java/ceos/backend/domain/application/validator/ApplicationValidator.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package ceos.backend.domain.application.validator;
22

3+
import static ceos.backend.domain.application.domain.Pass.PASS;
34

45
import ceos.backend.domain.application.domain.Application;
56
import ceos.backend.domain.application.domain.ApplicationQuestion;
@@ -119,7 +120,7 @@ public void validateInterviewTimeExist(String uuid, String email) {
119120
() -> {
120121
throw ApplicantNotFound.EXCEPTION;
121122
});
122-
if (application.getInterviewDatetime() == null) {
123+
if (application.getDocumentPass() == PASS && application.getInterviewDatetime() == null) {
123124
throw NotSetInterviewTime.EXCEPTION;
124125
}
125126
}

src/main/java/ceos/backend/domain/application/vo/ApplicantInfoVo.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import io.swagger.v3.oas.annotations.media.Schema;
1313
import jakarta.validation.constraints.NotEmpty;
1414
import jakarta.validation.constraints.NotNull;
15-
import jakarta.validation.constraints.Positive;
15+
import jakarta.validation.constraints.PositiveOrZero;
1616
import java.time.LocalDate;
1717
import lombok.Builder;
1818
import lombok.Getter;
@@ -56,7 +56,7 @@ public class ApplicantInfoVo {
5656

5757
@Schema(defaultValue = "99999999", description = "지원자 남은 학기 수")
5858
@NotNull(message = "지원자 남은 학기 수를 입력해주세요")
59-
@Positive
59+
@PositiveOrZero
6060
private int semestersLeftNumber;
6161

6262
@Builder

src/main/java/ceos/backend/domain/recruitment/domain/Recruitment.java

+28-18
Original file line numberDiff line numberDiff line change
@@ -33,22 +33,26 @@ public class Recruitment extends BaseEntity {
3333

3434
@NotNull private String devStudyUrl;
3535

36-
@NotNull private LocalDate startDateDoc;
36+
@NotNull private LocalDateTime startDateDoc;
3737

38-
@NotNull private LocalDate endDateDoc;
38+
@NotNull private LocalDateTime endDateDoc;
3939

40-
@NotNull private LocalDate resultDateDoc;
40+
@NotNull private LocalDateTime resultDateDoc;
4141

42-
@NotNull private LocalDate startDateInterview;
42+
@NotNull private LocalDateTime startDateInterview;
4343

44-
@NotNull private LocalDate endDateInterview;
44+
@NotNull private LocalDateTime endDateInterview;
4545

46-
@NotNull private LocalDate resultDateFinal;
46+
@NotNull private LocalDateTime resultDateFinal;
4747

4848
@NotNull private String openChatUrl;
4949

5050
@NotNull private LocalDate otDate;
5151

52+
@NotNull private LocalDate ideathonDate;
53+
54+
@NotNull private LocalDate hackathonDate;
55+
5256
@NotNull private LocalDate demodayDate;
5357

5458
private LocalDateTime applicationExcelCreatedAt;
@@ -60,14 +64,16 @@ private Recruitment(
6064
String prodStudyUrl,
6165
String designStudyUrl,
6266
String devStudyUrl,
63-
LocalDate startDateDoc,
64-
LocalDate endDateDoc,
65-
LocalDate resultDateDoc,
66-
LocalDate startDateInterview,
67-
LocalDate endDateInterview,
68-
LocalDate resultDateFinal,
67+
LocalDateTime startDateDoc,
68+
LocalDateTime endDateDoc,
69+
LocalDateTime resultDateDoc,
70+
LocalDateTime startDateInterview,
71+
LocalDateTime endDateInterview,
72+
LocalDateTime resultDateFinal,
6973
String openChatUrl,
7074
LocalDate otDate,
75+
LocalDate ideathonDate,
76+
LocalDate hackathonDate,
7177
LocalDate demodayDate,
7278
LocalDateTime applicationExcelCreatedAt) {
7379
this.generation = generation;
@@ -82,6 +88,8 @@ private Recruitment(
8288
this.resultDateFinal = resultDateFinal;
8389
this.openChatUrl = openChatUrl;
8490
this.otDate = otDate;
91+
this.ideathonDate = ideathonDate;
92+
this.hackathonDate = hackathonDate;
8593
this.demodayDate = demodayDate;
8694
this.applicationExcelCreatedAt = applicationExcelCreatedAt;
8795
}
@@ -99,6 +107,8 @@ public void updateRecruitment(RecruitmentDTO recruitmentDTO) {
99107
this.resultDateFinal = recruitmentDTO.getResultDateFinal();
100108
this.openChatUrl = recruitmentDTO.getOpenChatUrl();
101109
this.otDate = recruitmentDTO.getOtDate();
110+
this.ideathonDate = recruitmentDTO.getIdeathonDate();
111+
this.hackathonDate = recruitmentDTO.getHackathonDate();
102112
this.demodayDate = recruitmentDTO.getDemodayDate();
103113
}
104114

@@ -113,7 +123,7 @@ public void validateGeneration(int generation) {
113123
}
114124
}
115125

116-
public void validateBetweenStartDateDocAndEndDateDoc(LocalDate now) {
126+
public void validateBetweenStartDateDocAndEndDateDoc(LocalDateTime now) {
117127
if (now.compareTo(this.getStartDateDoc()) < 0) {
118128
throw NotApplicationDuration.EXCEPTION;
119129
}
@@ -122,7 +132,7 @@ public void validateBetweenStartDateDocAndEndDateDoc(LocalDate now) {
122132
}
123133
}
124134

125-
public void validateFinalResultAbleDuration(LocalDate now) {
135+
public void validateFinalResultAbleDuration(LocalDateTime now) {
126136
if (now.compareTo(this.resultDateFinal.plusDays(5)) >= 0) {
127137
throw NotFinalResultCheckDuration.EXCEPTION;
128138
}
@@ -131,7 +141,7 @@ public void validateFinalResultAbleDuration(LocalDate now) {
131141
}
132142
}
133143

134-
public void validateBetweenStartDateDocAndResultDateDoc(LocalDate now) {
144+
public void validateBetweenStartDateDocAndResultDateDoc(LocalDateTime now) {
135145
if (now.compareTo(this.startDateDoc) < 0) {
136146
throw NotDocumentPassDuration.EXCEPTION;
137147
}
@@ -140,7 +150,7 @@ public void validateBetweenStartDateDocAndResultDateDoc(LocalDate now) {
140150
}
141151
}
142152

143-
public void validateBetweenResultDateDocAndResultDateFinal(LocalDate now) {
153+
public void validateBetweenResultDateDocAndResultDateFinal(LocalDateTime now) {
144154
if (now.compareTo(this.resultDateDoc) < 0) {
145155
throw NotFinalPassDuration.EXCEPTION;
146156
}
@@ -149,13 +159,13 @@ public void validateBetweenResultDateDocAndResultDateFinal(LocalDate now) {
149159
}
150160
}
151161

152-
public void validateBeforeStartDateDoc(LocalDate now) {
162+
public void validateBeforeStartDateDoc(LocalDateTime now) {
153163
if (now.compareTo(this.startDateDoc) >= 0) {
154164
throw AlreadyApplicationDuration.EXCEPTION;
155165
}
156166
}
157167

158-
public void validAmenablePeriod(LocalDate now) {
168+
public void validAmenablePeriod(LocalDateTime now) {
159169
if (now.compareTo(this.startDateDoc) >= 0 && now.compareTo(this.resultDateFinal) <= 0) {
160170
throw NotAllowedToModify.EXCEPTION;
161171
}

src/main/java/ceos/backend/domain/recruitment/dto/RecruitmentDTO.java

+21-12
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
import ceos.backend.domain.recruitment.domain.Recruitment;
55
import java.time.LocalDate;
6+
import java.time.LocalDateTime;
67
import lombok.Builder;
78
import lombok.Getter;
89

@@ -12,14 +13,16 @@ public class RecruitmentDTO {
1213
private String prodStudyUrl;
1314
private String designStudyUrl;
1415
private String devStudyUrl;
15-
private LocalDate startDateDoc;
16-
private LocalDate endDateDoc;
17-
private LocalDate resultDateDoc;
18-
private LocalDate startDateInterview;
19-
private LocalDate endDateInterview;
20-
private LocalDate resultDateFinal;
16+
private LocalDateTime startDateDoc;
17+
private LocalDateTime endDateDoc;
18+
private LocalDateTime resultDateDoc;
19+
private LocalDateTime startDateInterview;
20+
private LocalDateTime endDateInterview;
21+
private LocalDateTime resultDateFinal;
2122
private String openChatUrl;
2223
private LocalDate otDate;
24+
private LocalDate ideathonDate;
25+
private LocalDate hackathonDate;
2326
private LocalDate demodayDate;
2427

2528
@Builder
@@ -28,14 +31,16 @@ public RecruitmentDTO(
2831
String prodStudyUrl,
2932
String designStudyUrl,
3033
String devStudyUrl,
31-
LocalDate startDateDoc,
32-
LocalDate endDateDoc,
33-
LocalDate resultDateDoc,
34-
LocalDate startDateInterview,
35-
LocalDate endDateInterview,
36-
LocalDate resultDateFinal,
34+
LocalDateTime startDateDoc,
35+
LocalDateTime endDateDoc,
36+
LocalDateTime resultDateDoc,
37+
LocalDateTime startDateInterview,
38+
LocalDateTime endDateInterview,
39+
LocalDateTime resultDateFinal,
3740
String openChatUrl,
3841
LocalDate otDate,
42+
LocalDate ideathonDate,
43+
LocalDate hackathonDate,
3944
LocalDate demodayDate) {
4045
this.generation = generation;
4146
this.prodStudyUrl = prodStudyUrl;
@@ -49,6 +54,8 @@ public RecruitmentDTO(
4954
this.resultDateFinal = resultDateFinal;
5055
this.openChatUrl = openChatUrl;
5156
this.otDate = otDate;
57+
this.ideathonDate = ideathonDate;
58+
this.hackathonDate = hackathonDate;
5259
this.demodayDate = demodayDate;
5360
}
5461

@@ -66,6 +73,8 @@ public static RecruitmentDTO from(Recruitment recruitment) {
6673
.resultDateFinal(recruitment.getResultDateFinal())
6774
.openChatUrl(recruitment.getOpenChatUrl())
6875
.otDate(recruitment.getOtDate())
76+
.ideathonDate(recruitment.getIdeathonDate())
77+
.hackathonDate(recruitment.getHackathonDate())
6978
.demodayDate(recruitment.getDemodayDate())
7079
.build();
7180
}

src/main/java/ceos/backend/domain/recruitment/dto/UserRecruitmentDTO.java

+21-12
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
import ceos.backend.domain.recruitment.domain.Recruitment;
55
import java.time.LocalDate;
6+
import java.time.LocalDateTime;
67
import lombok.Builder;
78
import lombok.Getter;
89

@@ -12,13 +13,15 @@ public class UserRecruitmentDTO {
1213
private String prodStudyUrl;
1314
private String designStudyUrl;
1415
private String devStudyUrl;
15-
private LocalDate startDateDoc;
16-
private LocalDate endDateDoc;
17-
private LocalDate resultDateDoc;
18-
private LocalDate startDateInterview;
19-
private LocalDate endDateInterview;
20-
private LocalDate resultDateFinal;
16+
private LocalDateTime startDateDoc;
17+
private LocalDateTime endDateDoc;
18+
private LocalDateTime resultDateDoc;
19+
private LocalDateTime startDateInterview;
20+
private LocalDateTime endDateInterview;
21+
private LocalDateTime resultDateFinal;
2122
private LocalDate otDate;
23+
private LocalDate ideathonDate;
24+
private LocalDate hackathonDate;
2225
private LocalDate demodayDate;
2326

2427
@Builder
@@ -27,13 +30,15 @@ public UserRecruitmentDTO(
2730
String prodStudyUrl,
2831
String designStudyUrl,
2932
String devStudyUrl,
30-
LocalDate startDateDoc,
31-
LocalDate endDateDoc,
32-
LocalDate resultDateDoc,
33-
LocalDate startDateInterview,
34-
LocalDate endDateInterview,
35-
LocalDate resultDateFinal,
33+
LocalDateTime startDateDoc,
34+
LocalDateTime endDateDoc,
35+
LocalDateTime resultDateDoc,
36+
LocalDateTime startDateInterview,
37+
LocalDateTime endDateInterview,
38+
LocalDateTime resultDateFinal,
3639
LocalDate otDate,
40+
LocalDate ideathonDate,
41+
LocalDate hackathonDate,
3742
LocalDate demodayDate) {
3843
this.generation = generation;
3944
this.prodStudyUrl = prodStudyUrl;
@@ -46,6 +51,8 @@ public UserRecruitmentDTO(
4651
this.endDateInterview = endDateInterview;
4752
this.resultDateFinal = resultDateFinal;
4853
this.otDate = otDate;
54+
this.ideathonDate = ideathonDate;
55+
this.hackathonDate = hackathonDate;
4956
this.demodayDate = demodayDate;
5057
}
5158

@@ -62,6 +69,8 @@ public static UserRecruitmentDTO from(Recruitment recruitment) {
6269
.endDateInterview(recruitment.getEndDateInterview())
6370
.resultDateFinal(recruitment.getResultDateFinal())
6471
.otDate(recruitment.getOtDate())
72+
.ideathonDate(recruitment.getIdeathonDate())
73+
.hackathonDate(recruitment.getHackathonDate())
6574
.demodayDate(recruitment.getDemodayDate())
6675
.build();
6776
}

src/main/java/ceos/backend/domain/recruitment/validator/RecruitmentValidator.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33

44
import ceos.backend.domain.recruitment.helper.RecruitmentHelper;
5-
import java.time.LocalDate;
5+
import java.time.LocalDateTime;
66
import lombok.RequiredArgsConstructor;
77
import org.springframework.stereotype.Component;
88

@@ -14,26 +14,26 @@ public class RecruitmentValidator {
1414
public void validateBetweenStartDateDocAndEndDateDoc() {
1515
recruitmentHelper
1616
.takeRecruitment()
17-
.validateBetweenStartDateDocAndEndDateDoc(LocalDate.now());
17+
.validateBetweenStartDateDocAndEndDateDoc(LocalDateTime.now());
1818
}
1919

2020
public void validateBeforeStartDateDoc() {
21-
recruitmentHelper.takeRecruitment().validateBeforeStartDateDoc(LocalDate.now());
21+
recruitmentHelper.takeRecruitment().validateBeforeStartDateDoc(LocalDateTime.now());
2222
}
2323

2424
public void validateBetweenResultDateDocAndResultDateFinal() {
2525
recruitmentHelper
2626
.takeRecruitment()
27-
.validateBetweenResultDateDocAndResultDateFinal(LocalDate.now());
27+
.validateBetweenResultDateDocAndResultDateFinal(LocalDateTime.now());
2828
}
2929

3030
public void validateFinalResultAbleDuration() {
31-
recruitmentHelper.takeRecruitment().validateFinalResultAbleDuration(LocalDate.now());
31+
recruitmentHelper.takeRecruitment().validateFinalResultAbleDuration(LocalDateTime.now());
3232
}
3333

3434
public void validateBetweenStartDateDocAndResultDateDoc() {
3535
recruitmentHelper
3636
.takeRecruitment()
37-
.validateBetweenStartDateDocAndResultDateDoc(LocalDate.now());
37+
.validateBetweenStartDateDocAndResultDateDoc(LocalDateTime.now());
3838
}
3939
}

src/main/java/ceos/backend/global/config/WebSecurityConfig.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ public class WebSecurityConfig {
5050
@Value("${server.admin_url}")
5151
private String ADMIN_URL;
5252

53+
@Value("${server.dev_url}")
54+
private String DEV_URL;
55+
5356
@Value("${swagger.user}")
5457
private String swaggerUser;
5558

@@ -82,7 +85,7 @@ public class WebSecurityConfig {
8285

8386
private final String[] GetPermittedPatterns = {
8487
"/awards/**",
85-
"/recruitments/**",
88+
"/recruitments",
8689
"/projects/**",
8790
"/activities/**",
8891
"/managements/**",
@@ -188,7 +191,8 @@ private CorsConfiguration getDefaultCorsConfiguration() {
188191
"http://localhost:3001",
189192
USER_URL,
190193
ADMIN_URL,
191-
SERVER_URL));
194+
SERVER_URL,
195+
DEV_URL));
192196
configuration.setAllowedHeaders(List.of("*"));
193197
configuration.setAllowedMethods(List.of("*"));
194198
configuration.setAllowCredentials(true);

0 commit comments

Comments
 (0)