package org.fluxtream.core.connectors;
import org.springframework.beans.factory.annotation.Autowired;
import org.fluxtream.core.Configuration;
import org.fluxtream.core.services.ConnectorUpdateService;
import org.springframework.beans.factory.annotation.Qualifier;
public class ApiClientSupport {
@Autowired
protected Configuration env;
@Qualifier("connectorUpdateServiceImpl")
@Autowired
protected ConnectorUpdateService connectorUpdateService;
protected final boolean hasReachedRateLimit(Connector connector, long guestId) {
String rateLimitString = (String) env.connectors.getProperty(connector.getName()
+ ".rateLimit");
if (rateLimitString == null)
rateLimitString = (String) env.connectors.getProperty("rateLimit");
int count = Integer.valueOf(rateLimitString.split("/")[0]);
int millis = Integer.valueOf(rateLimitString.split("/")[1]);
long then = System.currentTimeMillis() - millis;
long numberOfUpdates;
if (rateLimitString.endsWith("/user")) {
numberOfUpdates = connectorUpdateService
.getNumberOfUpdatesSince(guestId, connector.value(), then);
} else {
numberOfUpdates = connectorUpdateService
.getTotalNumberOfUpdatesSince(connector, then);
}
return numberOfUpdates >= count;
}
}