com.yoti.api.client.spi.remote.call.JsonResourceFetcher Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of yoti-sdk-api Show documentation
Show all versions of yoti-sdk-api Show documentation
Java SDK for simple integration with the Yoti platform
The newest version!
package com.yoti.api.client.spi.remote.call;
import java.io.IOException;
import com.yoti.api.client.docs.session.retrieve.configuration.capture.liveness.RequiredLivenessResourceResponse;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
public final class JsonResourceFetcher implements ResourceFetcher {
private final ObjectMapper objectMapper;
private final RawResourceFetcher rawResourceFetcher;
public static JsonResourceFetcher newInstance() {
return JsonResourceFetcher.newInstance(new RawResourceFetcher());
}
public static JsonResourceFetcher newInstance(RawResourceFetcher rawResourceFetcher) {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
SimpleModule simpleModule = new SimpleModule();
simpleModule.addDeserializer(RequiredLivenessResourceResponse.class, new ForceSubTypeDeserializer<>(RequiredLivenessResourceResponse.class));
objectMapper.registerModule(simpleModule);
return new JsonResourceFetcher(objectMapper, rawResourceFetcher);
}
private JsonResourceFetcher(ObjectMapper objectMapper,
RawResourceFetcher rawResourceFetcher) {
this.objectMapper = objectMapper;
this.rawResourceFetcher = rawResourceFetcher;
}
@Override
public T doRequest(SignedRequest signedRequest, Class resourceClass) throws ResourceException, IOException {
SignedRequestResponse signedRequestResponse = rawResourceFetcher.doRequest(signedRequest);
return objectMapper.readValue(signedRequestResponse.getResponseBody(), resourceClass);
}
public T doRequest(SignedRequest signedRequest, TypeReference resourceClass) throws ResourceException, IOException {
SignedRequestResponse signedRequestResponse = rawResourceFetcher.doRequest(signedRequest);
return objectMapper.readValue(signedRequestResponse.getResponseBody(), resourceClass);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy