Hateoas.java
package se.jobtechdev.personaldatagateway.api.util;
import org.springframework.web.context.request.NativeWebRequest;
import java.util.Map;
import java.util.Optional;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
public final class Hateoas {
private static final Pattern PATTERN = Pattern.compile("uri=(.*)");
private Hateoas() {
}
public static Optional<String> extractRequestUri(NativeWebRequest request, String baseUrl) {
final var matcher = PATTERN.matcher(request.getDescription(false));
if (matcher.find()) {
final var uri = matcher.group(1);
return Optional.of(baseUrl.concat(uri));
}
return Optional.empty();
}
public static String extractQueryParametersFromParameterMap(Map<String, String[]> parameterMap) {
final var params =
parameterMap.entrySet().stream()
.map(
set -> {
final var key = set.getKey();
final var values = String.join(",", set.getValue());
return key.concat("=").concat(values);
})
.collect(Collectors.joining("&"));
return params.isEmpty() ? "" : "?".concat(params);
}
}