@Override
public <T> Connection<T> fetchConnection(String connection, Class<T> connectionType, Parameter... parameters) {
verifyParameterPresence("connection", connection);
verifyParameterPresence("connectionType", connectionType);
Connection<T> conn = new Connection<>(this, makeRequest(connection, parameters), connectionType);
if (conn.getNextPageUrl() == null && conn.getAfterCursor() != null) {
String fullUrl = createEndpointForApiCall(connection, false);
String paramString = toParameterString(parameters);
fullUrl = UrlUtils.replaceOrAddQueryParameter(fullUrl + "?" + paramString, "after", conn.getAfterCursor());
conn.setNextPageUrl(fullUrl);
}
if (conn.getPreviousPageUrl() == null && conn.getBeforeCursor() != null) {
String fullUrl = createEndpointForApiCall(connection, false);
String paramString = toParameterString(parameters);
fullUrl = UrlUtils.replaceOrAddQueryParameter(fullUrl + "?" + paramString, "before", conn.getBeforeCursor());
conn.setPreviousPageUrl(fullUrl);
}
return conn;
}