aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/gv/egiz/moazs/client/TnvzHelper.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/gv/egiz/moazs/client/TnvzHelper.java')
-rw-r--r--src/main/java/at/gv/egiz/moazs/client/TnvzHelper.java34
1 files changed, 23 insertions, 11 deletions
diff --git a/src/main/java/at/gv/egiz/moazs/client/TnvzHelper.java b/src/main/java/at/gv/egiz/moazs/client/TnvzHelper.java
index 5cc4954..e6bacec 100644
--- a/src/main/java/at/gv/egiz/moazs/client/TnvzHelper.java
+++ b/src/main/java/at/gv/egiz/moazs/client/TnvzHelper.java
@@ -69,9 +69,9 @@ public class TnvzHelper {
var tnvzResponse = tnvzPort.queryPerson(tnvzQuery);
verifyResponse(tnvzResponse);
- var tnvzResult = getResult(tnvzResponse);
+ var tnvzResult = getFirstResult(tnvzResponse);
var typesInRequest = extractListOfMimemtypesIn(mzsRequest);
- checkMimetypes(tnvzResult, typesInRequest);
+ checkMimetypes(tnvzResponse, typesInRequest);
return tnvzResult.getSuccess().getIdentification();
}
@@ -196,14 +196,15 @@ public class TnvzHelper {
}
}
- private PersonResultType getResult(QueryPersonResponse tnvzResponse) {
+ private PersonResultType getFirstResult(QueryPersonResponse tnvzResponse) {
return tnvzResponse.getQueryResultList().getQueryResult().get(0);
}
- private void checkMimetypes(PersonResultType tnvzResult, Set<String> typesInRequest) {
- var mismatchedTypes = findMimeTypeMismatches(tnvzResult, typesInRequest);
+ private void checkMimetypes(QueryPersonResponse tnvzResponse, Set<String> typesInRequest) {
+
+ var mismatchedTypes = findMimeTypeMismatches(tnvzResponse, typesInRequest);
if (!mismatchedTypes.isEmpty()) {
- var acceptedTypesString = join(",", getAcceptedTypes(tnvzResult));
+ var acceptedTypesString = join(",", getAcceptedTypes(tnvzResponse));
var mismatchedTypesString = join(",", mismatchedTypes);
var message = String.format(MIMETYPE_MISSMATCH_ERROR_MSG, mismatchedTypesString, acceptedTypesString);
var code = MoaZSException.ERROR_MZS_MIMETYPE_MISSMATCH;
@@ -211,10 +212,11 @@ public class TnvzHelper {
}
}
- private Collection<String> findMimeTypeMismatches(PersonResultType result, Set<String> typesInRequest) {
- var acceptedTypes = getAcceptedTypes(result);
+ private Collection<String> findMimeTypeMismatches(QueryPersonResponse response, Set<String> typesInRequest) {
+ var acceptedTypes = getAcceptedTypes(response);
- if (acceptedTypes.contains("*/*")) {
+ var result = getFirstResult(response);
+ if (result.getSuccess().getAllStandardMimeTypes() != null) {
return List.of();
}
@@ -224,8 +226,18 @@ public class TnvzHelper {
return typesInRequestCopy;
}
- private List<String> getAcceptedTypes(PersonResultType result) {
- return result.getSuccess().getMimeTypeList().getMimeType();
+ private Set<String> getAcceptedTypes(QueryPersonResponse response) {
+
+ Set<String> union = new HashSet<>();
+ var standardTypes = response.getStandardMimeTypeList().getMimeType();
+ union.addAll(standardTypes);
+
+ var acceptedTypeList = getFirstResult(response).getSuccess().getMimeTypeList();
+ if(acceptedTypeList != null) {
+ union.addAll(acceptedTypeList.getMimeType());
+ }
+
+ return union;
}