package nwt.jtlserver.com.controllers;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import javax.annotation.PostConstruct;
import javax.json.Json;
import javax.json.JsonArray;
import javax.json.JsonObject;
import javax.json.JsonObjectBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.offbytwo.jenkins.JenkinsServer;
@Service
public class PerformanceController {
private MongoDBController db;
private JenkinsServer jenkins;
private static final Logger LOG = LoggerFactory.getLogger(PerformanceController.class);
@Autowired
public PerformanceController(MongoDBController db){
this.db = db;
try{
jenkins = new JenkinsServer(new URI("http://192.168.1.10:8080"), "nwt-builder", "NWT91life");
} catch (URISyntaxException e){
e.printStackTrace();
}
}
// @PostConstruct
// public void init(){
// TimerTask updateTask = new UpdateStatus(this);
// Timer timer = new Timer(true);
// LOG.info("Setting TimerTask in PerformanceController");
// timer.scheduleAtFixedRate(updateTask, 15 * 1000, 3 * 1000);
// }
public JsonArray addPerfResults(String payload){
return db.updatePerfResults(payload);
}
public JsonObject getPerfResults(String payload){
JsonObjectBuilder objBuild = Json.createObjectBuilder();
objBuild.add("api", "v0.0.4");
objBuild.add("time", new Date().getTime());
objBuild.add("type", "GetPerformanceResults");
objBuild.add("items", db.getPerfResults(payload));
return objBuild.build();
}
public JsonObject updatePerfResult(String paylod){
JsonObjectBuilder objBuild = Json.createObjectBuilder();
objBuild.add("api", "v0.0.4");
objBuild.add("time", new Date().getTime());
objBuild.add("type", "UpdatePerformanceResults");
objBuild.add("items", db.updatePerfResults(paylod));
return objBuild.build();
}
// public static class UpdateStatus extends TimerTask {
// private PerformanceController perfController;
//
// public UpdateStatus(PerformanceController perfController){
// super();
// this.perfController = perfController;
// }
//
// @Override
// public void run(){
// try{
// perfController.updatePerfResults();
// } catch (Exception e){
// e.printStackTrace();
// }
// }
// }
}