Package org.lightview.business.administration.boundary

Source Code of org.lightview.business.administration.boundary.PollingSetup

package org.lightview.business.administration.boundary;

import javafx.util.Pair;
import org.lightview.presentation.dashboard.DashboardModel;

import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.json.Json;
import javax.json.JsonObject;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.Response;

/**
* @author: adam-bien.com
*/
public class PollingSetup {

    private Client client;

    @Inject
    DashboardModel model;

    @PostConstruct
    public void init() {
        this.client = ClientBuilder.newClient();
    }

    public String changeInterval(String location,int newValue){
        JsonObject interval = Json.createObjectBuilder().add("interval", newValue).add("location",location).build();
        WebTarget administrationTarget = getAdministrationTarget();
        final Response response = administrationTarget.request().post(Entity.json(interval));
        return response.readEntity(JsonObject.class).getString("nextTimeout");

    }

    private WebTarget getAdministrationTarget() {
        return this.client.target(getUri());
    }

    public Pair<String,String> status(){
        Response response = getAdministrationTarget().request().get();
        JsonObject status = response.readEntity(JsonObject.class);
        String nextTimeout = status.getString("nextTimeout");
        String currentInterval = status.getString("interval");
        return new Pair<String, String>(currentInterval,nextTimeout);


    }

    public boolean stopPolling(){
        //stop
        Response response = getAdministrationTarget().request().delete();
        return (response != null && response.getStatus() == 204);
}

    public String getUri() {
        return model.serverUriProperty().get() + "/resources/polling";
    }


}
TOP

Related Classes of org.lightview.business.administration.boundary.PollingSetup

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.