package ru.semiot.platform.apigateway.config;
import ru.semiot.platform.apigateway.beans.impl.OSGiApiService;
import rx.Observable;
import java.io.IOException;
import javax.inject.Inject;
import javax.json.JsonObject;
import javax.servlet.AsyncContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(urlPatterns = "/config/SystemSettings", asyncSupported = true)
public class SystemSettingsHandler extends HttpServlet {
@Inject
OSGiApiService service;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
final AsyncContext ctx = req.startAsync();
Observable<JsonObject> jsonProperties = service.getConfiguration(BundleConstants.MANAGER_PID);
Observable<Boolean> managerIsConfigurated = service.managerIsConfigurated();
Observable.zip(jsonProperties, managerIsConfigurated,
(jsProperties, mngrIsConfigurated) -> {
JsonObject jsonDomain = jsProperties.getJsonObject(BundleConstants.MANAGER_DOMAIN);
ctx.getRequest().setAttribute("jsonDomain", jsonDomain);
ctx.getRequest().setAttribute("mngrIsConfigurated", mngrIsConfigurated);
return new String();
}).subscribe(ConfigHelper.dispatch(ctx, "/configuration/SystemSettings"));
}
}