11
11
import com .fasterxml .jackson .databind .ObjectMapper ;
12
12
import com .fasterxml .jackson .dataformat .csv .CsvMapper ;
13
13
import com .fasterxml .jackson .dataformat .csv .CsvSchema ;
14
-
14
+ import io . vertx . core . json . JsonObject ;
15
15
import org .folio .AlternativeTitleType ;
16
16
import org .folio .Alternativetitletypes ;
17
17
import org .folio .CallNumberType ;
72
72
import org .springframework .http .ResponseEntity ;
73
73
import org .springframework .web .client .RestTemplate ;
74
74
75
- import io .vertx .core .json .JsonObject ;
76
-
77
75
public class MappingUtility {
78
76
79
77
private static final int SETTING_LIMIT = 1000 ;
80
78
81
- private static final String IDENTIFIER_TYPES_URL = "/identifier-types?limit=" + SETTING_LIMIT ;
82
- private static final String CLASSIFICATION_TYPES_URL = "/classification-types?limit=" + SETTING_LIMIT ;
83
- private static final String INSTANCE_TYPES_URL = "/instance-types?limit=" + SETTING_LIMIT ;
84
- private static final String INSTANCE_FORMATS_URL = "/instance-formats?limit=" + SETTING_LIMIT ;
85
- private static final String CONTRIBUTOR_TYPES_URL = "/contributor-types?limit=" + SETTING_LIMIT ;
86
- private static final String CONTRIBUTOR_NAME_TYPES_URL = "/contributor-name-types?limit=" + SETTING_LIMIT ;
87
- private static final String ELECTRONIC_ACCESS_URL = "/electronic-access-relationships?limit=" + SETTING_LIMIT ;
88
- private static final String INSTANCE_NOTE_TYPES_URL = "/instance-note-types?limit=" + SETTING_LIMIT ;
89
- private static final String INSTANCE_ALTERNATIVE_TITLE_TYPES_URL = "/alternative-title-types?limit=" + SETTING_LIMIT ;
90
- private static final String ISSUANCE_MODES_URL = "/modes-of-issuance?limit=" + SETTING_LIMIT ;
91
- private static final String INSTANCE_STATUSES_URL = "/instance-statuses?limit=" + SETTING_LIMIT ;
92
- private static final String NATURE_OF_CONTENT_TERMS_URL = "/nature-of-content-terms?limit=" + SETTING_LIMIT ;
93
- private static final String INSTANCE_RELATIONSHIP_TYPES_URL = "/instance-relationship-types?limit=" + SETTING_LIMIT ;
94
- private static final String HOLDINGS_TYPES_URL = "/holdings-types?limit=" + SETTING_LIMIT ;
95
- private static final String HOLDINGS_NOTE_TYPES_URL = "/holdings-note-types?limit=" + SETTING_LIMIT ;
96
- private static final String ILL_POLICIES_URL = "/ill-policies?limit=" + SETTING_LIMIT ;
97
- private static final String CALL_NUMBER_TYPES_URL = "/call-number-types?limit=" + SETTING_LIMIT ;
98
- private static final String STATISTICAL_CODES_URL = "/statistical-codes?limit=" + SETTING_LIMIT ;
99
- private static final String STATISTICAL_CODE_TYPES_URL = "/statistical-code-types?limit=" + SETTING_LIMIT ;
100
- private static final String LOCATIONS_URL = "/locations?limit=" + SETTING_LIMIT ;
101
- private static final String MATERIAL_TYPES_URL = "/material-types?limit=" + SETTING_LIMIT ;
102
- private static final String ITEM_DAMAGED_STATUSES_URL = "/item-damaged-statuses?limit=" + SETTING_LIMIT ;
103
- private static final String LOAN_TYPES_URL = "/loan-types?limit=" + SETTING_LIMIT ;
104
- private static final String ITEM_NOTE_TYPES_URL = "/item-note-types?limit=" + SETTING_LIMIT ;
105
- private static final String FIELD_PROTECTION_SETTINGS_URL = "/field-protection-settings/marc?limit=" + SETTING_LIMIT ;
106
-
107
- private static final RestTemplate restTemplate = new RestTemplate ();
108
-
109
79
private static final MarcToInstanceMapper marcToInstanceMapper = new MarcToInstanceMapper ();
110
80
111
81
private static final ObjectMapper objectMapper = new ObjectMapper ();
112
82
83
+ static RestTemplate restTemplate = new RestTemplate ();
84
+
85
+ static final String MAPPING_RULES_URL = "/mapping-rules/marc-bib" ;
86
+ static final String IDENTIFIER_TYPES_URL = "/identifier-types?limit=" + SETTING_LIMIT ;
87
+ static final String CLASSIFICATION_TYPES_URL = "/classification-types?limit=" + SETTING_LIMIT ;
88
+ static final String INSTANCE_TYPES_URL = "/instance-types?limit=" + SETTING_LIMIT ;
89
+ static final String ELECTRONIC_ACCESS_URL = "/electronic-access-relationships?limit=" + SETTING_LIMIT ;
90
+ static final String INSTANCE_FORMATS_URL = "/instance-formats?limit=" + SETTING_LIMIT ;
91
+ static final String CONTRIBUTOR_TYPES_URL = "/contributor-types?limit=" + SETTING_LIMIT ;
92
+ static final String CONTRIBUTOR_NAME_TYPES_URL = "/contributor-name-types?limit=" + SETTING_LIMIT ;
93
+ static final String INSTANCE_NOTE_TYPES_URL = "/instance-note-types?limit=" + SETTING_LIMIT ;
94
+ static final String INSTANCE_ALTERNATIVE_TITLE_TYPES_URL = "/alternative-title-types?limit=" + SETTING_LIMIT ;
95
+ static final String NATURE_OF_CONTENT_TERMS_URL = "/nature-of-content-terms?limit=" + SETTING_LIMIT ;
96
+ static final String INSTANCE_STATUSES_URL = "/instance-statuses?limit=" + SETTING_LIMIT ;
97
+ static final String INSTANCE_RELATIONSHIP_TYPES_URL = "/instance-relationship-types?limit=" + SETTING_LIMIT ;
98
+ static final String HOLDINGS_TYPES_URL = "/holdings-types?limit=" + SETTING_LIMIT ;
99
+ static final String HOLDINGS_NOTE_TYPES_URL = "/holdings-note-types?limit=" + SETTING_LIMIT ;
100
+ static final String ILL_POLICIES_URL = "/ill-policies?limit=" + SETTING_LIMIT ;
101
+ static final String CALL_NUMBER_TYPES_URL = "/call-number-types?limit=" + SETTING_LIMIT ;
102
+ static final String STATISTICAL_CODES_URL = "/statistical-codes?limit=" + SETTING_LIMIT ;
103
+ static final String STATISTICAL_CODE_TYPES_URL = "/statistical-code-types?limit=" + SETTING_LIMIT ;
104
+ static final String LOCATIONS_URL = "/locations?limit=" + SETTING_LIMIT ;
105
+ static final String MATERIAL_TYPES_URL = "/material-types?limit=" + SETTING_LIMIT ;
106
+ static final String ITEM_DAMAGED_STATUSES_URL = "/item-damaged-statuses?limit=" + SETTING_LIMIT ;
107
+ static final String LOAN_TYPES_URL = "/loan-types?limit=" + SETTING_LIMIT ;
108
+ static final String ITEM_NOTE_TYPES_URL = "/item-note-types?limit=" + SETTING_LIMIT ;
109
+ static final String FIELD_PROTECTION_SETTINGS_URL = "/field-protection-settings/marc?limit=" + SETTING_LIMIT ;
110
+ static final String ISSUANCE_MODES_URL = "/modes-of-issuance?limit=" + SETTING_LIMIT ;
111
+
113
112
private MappingUtility () {
114
113
115
114
}
@@ -119,6 +118,7 @@ public static String mapRecordToInsance(String marcJson, String okapiUrl, String
119
118
JsonObject mappingRules = fetchRules (okapiUrl , tenant , token );
120
119
MappingParameters mappingParameters = getMappingParamaters (okapiUrl , tenant , token );
121
120
Instance instance = marcToInstanceMapper .mapRecord (parsedRecord , mappingParameters , mappingRules );
121
+
122
122
return objectMapper .writeValueAsString (instance );
123
123
}
124
124
@@ -135,7 +135,7 @@ public static String mapCsvToJson(String csv) throws IOException {
135
135
136
136
private static JsonObject fetchRules (String okapiUrl , String tenant , String token ) {
137
137
HttpEntity <?> entity = new HttpEntity <>(headers (tenant , token ));
138
- String url = okapiUrl + "/mapping-rules/marc-bib" ;
138
+ String url = okapiUrl + MAPPING_RULES_URL ;
139
139
ResponseEntity <String > response = restTemplate .exchange (url , HttpMethod .GET , entity , String .class );
140
140
return new JsonObject (response .getBody ());
141
141
}
@@ -171,7 +171,7 @@ private static MappingParameters getMappingParamaters(String okapiUrl, String te
171
171
.withItemNoteTypes (getItemNoteTypes (okapiUrl , headers ))
172
172
.withMarcFieldProtectionSettings (getMarcFieldProtectionSettings (okapiUrl , headers ));
173
173
}
174
-
174
+
175
175
private static List <IdentifierType > getIdentifierTypes (String okapiUrl , HttpHeaders headers ) {
176
176
HttpEntity <Identifiertypes > entity = new HttpEntity <>(headers );
177
177
String url = okapiUrl + IDENTIFIER_TYPES_URL ;
0 commit comments