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.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", asyncSupported = true) public class ConfigHandler extends HttpServlet { @Inject private OSGiApiService service; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { final AsyncContext ctx = req.startAsync(); Observable<Boolean> managerIsConfigurated = service.managerIsConfigurated(); managerIsConfigurated.subscribe((Boolean isConf) -> { if (isConf) { ctx.dispatch("/config/DriversInstalled"); } else { ctx.dispatch("/config/SystemSettings"); } }, (Throwable e) -> ctx.dispatch("/notConnect"), () -> {}); } }