package org.netmelody.cieye.server.response.responder;
import java.io.IOException;
import org.netmelody.cieye.core.domain.Landscape;
import org.netmelody.cieye.core.logging.LogKeeper;
import org.netmelody.cieye.core.logging.Logbook;
import org.netmelody.cieye.server.response.CiEyeResponder;
import org.netmelody.cieye.server.response.CiEyeResponse;
import org.netmelody.cieye.server.response.Prison;
import org.netmelody.cieye.server.response.RequestOriginTracker;
import org.simpleframework.http.Request;
public final class DohHandler implements CiEyeResponder {
private static final Logbook LOG = LogKeeper.logbookFor(DohHandler.class);
private final Landscape landscape;
private final RequestOriginTracker tracker;
private final Prison prison;
public DohHandler(Landscape landscape, Prison prison, RequestOriginTracker tracker) {
this.landscape = landscape;
this.prison = prison;
this.tracker = tracker;
}
@Override
public CiEyeResponse respond(Request request) throws IOException {
try {
final String active = request.getForm().get("active");
if ("true".equals(active)) {
prison.imprison(tracker.sponsorsOf(request, "-doh-"), landscape);
}
else {
prison.paroleAllPrisonersFor(landscape);
}
} catch (Exception e) {
LOG.error("Failed to handle request to doh", e);
}
return CiEyeResponse.withJson("");
}
}