package org.netmelody.cieye.server.response.responder;
import java.io.IOException;
import org.netmelody.cieye.server.CiEyeNewVersionChecker;
import org.netmelody.cieye.server.CiEyeServerInformationFetcher;
import org.netmelody.cieye.server.response.CiEyeResponder;
import org.netmelody.cieye.server.response.CiEyeResponse;
import org.netmelody.cieye.server.response.JsonTranslator;
import org.simpleframework.http.Request;
public final class CiEyeVersionResponder implements CiEyeResponder {
public static final class VersionInformation {
@SuppressWarnings("unused") private final String currentServerVersion;
@SuppressWarnings("unused") private final String latestServerVersion;
private VersionInformation(String currentServerVersion, String latestServerVersion) {
this.currentServerVersion = currentServerVersion;
this.latestServerVersion = latestServerVersion;
}
}
private final CiEyeServerInformationFetcher configurationFetcher;
private final CiEyeNewVersionChecker updateChecker;
public CiEyeVersionResponder(CiEyeServerInformationFetcher configurationFetcher, CiEyeNewVersionChecker updateChecker) {
this.configurationFetcher = configurationFetcher;
this.updateChecker = updateChecker;
}
@Override
public CiEyeResponse respond(Request request) throws IOException {
final VersionInformation versionInformation = new VersionInformation(configurationFetcher.getVersion(),
updateChecker.getLatestVersion());
return CiEyeResponse.withJson(new JsonTranslator().toJson(versionInformation)).expiringInMillis(10000L);
}
}