-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathUnivApplyInfoResponse.java
More file actions
41 lines (33 loc) · 1.61 KB
/
UnivApplyInfoResponse.java
File metadata and controls
41 lines (33 loc) · 1.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package com.example.solidconnection.application.dto;
import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
import com.example.solidconnection.application.domain.Application;
import com.example.solidconnection.university.domain.UnivApplyInfo;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public record UnivApplyInfoResponse(
@JsonProperty("firstChoiceUniversity")
String firstChoiceUnivApplyInfo,
@JsonProperty("secondChoiceUniversity")
@JsonInclude(NON_NULL)
String secondChoiceUnivApplyInfo,
@JsonProperty("thirdChoiceUniversity")
@JsonInclude(NON_NULL)
String thirdChoiceUnivApplyInfo) {
public static UnivApplyInfoResponse of(Application application, List<UnivApplyInfo> univApplyInfos) {
Map<Long, String> univApplyInfoMap = univApplyInfos.stream()
.collect(Collectors.toMap(
UnivApplyInfo::getId,
UnivApplyInfo::getKoreanName
));
return new UnivApplyInfoResponse(
univApplyInfoMap.get(application.getFirstChoiceUnivApplyInfoId()),
application.getSecondChoiceUnivApplyInfoId() != null
? univApplyInfoMap.get(application.getSecondChoiceUnivApplyInfoId()) : null,
application.getThirdChoiceUnivApplyInfoId() != null
? univApplyInfoMap.get(application.getThirdChoiceUnivApplyInfoId()) : null
);
}
}