BaseComdirectService.java
package eu.wuttke.comdirect.util;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.text.SimpleDateFormat;
import java.util.Date;
public abstract class BaseComdirectService {
protected String comdirectApiEndpoint = "https://api.comdirect.de";
protected SimpleHttpClient httpClient;
protected ObjectMapper objectMapper;
protected BaseComdirectService(SimpleHttpClient httpClient) {
this.httpClient = httpClient;
this.objectMapper = new ObjectMapper();
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
}
protected String buildRequestInfoHeader(String sessionId) {
String requestId = generateTimestamp();
return "{\"clientRequestId\":{" +
"\"sessionId\":\"" + sessionId + "\"," +
"\"requestId\":\"" + requestId + "\"}}";
}
protected Date calculateExpiry(Integer expiresIn) {
if (expiresIn == null)
return null;
Date now = new Date();
return new Date(now.getTime() + expiresIn * 1000L);
}
private String generateTimestamp() {
Date now = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS");
return simpleDateFormat.format(now);
}
protected static final String ACCEPT_HEADER = "Accept";
protected static final String AUTHORIZATION_HEADER = "Authorization";
protected static final String CONTENT_TYPE_HEADER = "Content-Type";
protected static final String APPLICATION_JSON = "application/json";
protected static final String BEARER = "Bearer ";
protected static final String ACCESS_TOKEN = "access_token";
protected static final String REFRESH_TOKEN = "refresh_token";
protected static final String EXPIRES_IN = "expires_in";
protected static final String APPLICATION_X_WWW_FORM_URLENCODED = "application/x-www-form-urlencoded";
protected static final String X_HTTP_REQUEST_INFO_HEADER = "x-http-request-info";
}