List of usage examples for io.vertx.core.json JsonObject getString
public String getString(String key)
From source file:net.sf.sgsimulator.sgsrest.vertx.controllers.PageController.java
License:Open Source License
@GET("/admin") public synchronized String getAdmin(RoutingContext ctx) { SocketAddress remote = ctx.request().remoteAddress(); JsonObject obj = new JsonObject().put("host", remote.host()).put("port", remote.port()); // ctx.response().end(obj.encodePrettily()); String host = obj.getString("host"); String admincode = System.getProperties().get("sgsimulator.admincode").toString(); /*if (!admincode.equalsIgnoreCase(code)){ Log.error("ILLEGAL ACCESS FROM IP "+host); return "<H1>WARNING: illegal attempt to access admin interface from IP "+host+". Police will be notified </H1>"; }*//*from w ww . j a v a 2 s . c o m*/ if (allowedhost.isEmpty()) { if (System.getProperties().get("sgsimulator.adminip") != null) if (System.getProperties().get("sgsimulator.adminip").equals("-1")) { allowedhost = host; System.err.println("First host will be the admin"); } else allowedhost = System.getProperties().get("sgsimulator.adminip").toString(); } if (!host.equalsIgnoreCase(allowedhost)) { Log.error("ILLEGAL ACCESS FROM IP " + host); return "<H1>WARNING: illegal attempt to access admin interface from IP " + host + ". Police will be notified </H1>"; } String page = "Not working. Contact the administrator"; if (System.getProperties().get("sgsimulator.scenario") == null) System.getProperties().put("sgsimulator.scenario", "solarbyperson"); String ptrans = " $.getJSON('/sg/query/transformer-names', function (data) {" + "var items = [];\n" + "console.log(data);\n" + "$.each(data.result, function (index, tName) {\n" + " updateTransformers(tName);\n" + "});\n" + "});\n"; page = "<!DOCTYPE html><html><head><link href=\"/sg/assets/sg.css\" />\n" + "<style></style><meta charset=\"utf-8\"><title>SG Charts</title></head><body> \n" + " <H1>Admin panel</H1>" + "<script src=\"https://code.jquery.com/jquery-3.2.0.min.js\"></script>\n" + chartMetering + chartWeather + billing + ballance + "<H2>Assigned panels</h2>" + "<div id='transformer-elements' style=\"text-align: center;\"/>" + "<script src=\"http://canvasjs.com/assets/script/canvasjs.min.js\"></script>\n" + "<script src=\"/sg/assets/sg.js\"></script>\n" + "<script type=\"text/javascript\">\n" + "updateCounterListener(\"bill\",\"#bill\"); \n" + "updateCounterListener(\"powerdump\",\"#accumpower\");\n" + "updateListeners(\"generation\",charts.chart1,LASTGENERATED);\n" + "updateListeners(\"consumption\",charts.chart1,LASTCONSUMPTION);\n" + "updateListeners(\"demand\",charts.chart1,LASTDEMAND);\n" + "updateListeners(\"wind\",charts.chart2,WIND);\n" + "updateListeners(\"sun\",charts.chart2,SUN);\n" + ptrans + "</script>\n" + "</body>\n" + "</html>\n"; return page; }
From source file:net.sf.sgsimulator.sgsrest.vertx.controllers.PageController.java
License:Open Source License
@GET("/screen") public synchronized String getToProjectScreen(RoutingContext ctx) { SocketAddress remote = ctx.request().remoteAddress(); JsonObject obj = new JsonObject().put("host", remote.host()).put("port", remote.port()); // ctx.response().end(obj.encodePrettily()); String host = obj.getString("host"); if (allowedhost.isEmpty()) { if (System.getProperties().get("sgsimulator.adminip") != null) if (System.getProperties().get("sgsimulator.adminip").equals("-1")) { allowedhost = host;/*from w w w. j a v a 2s . c o m*/ System.err.println("First host will be the admin"); } else allowedhost = System.getProperties().get("sgsimulator.adminip").toString(); } if (!host.equalsIgnoreCase(allowedhost)) { Log.error("ILLEGAL ACCESS FROM IP " + host); return "<H1>WARNING: illegal attempt to access admin interface from IP " + host + ". Police will be notified </H1>"; } String page = "Not working. Contact the administrator"; if (System.getProperties().get("sgsimulator.scenario") == null) System.getProperties().put("sgsimulator.scenario", "solarbyperson"); page = "<!DOCTYPE html><html><head><link href=\"/sg/assets/sg.css\" />\n" + "<style></style><meta charset=\"utf-8\"><title>SG Charts</title></head><body> \n" + " <H1>Screen panel</H1>" + "<script src=\"https://code.jquery.com/jquery-3.2.0.min.js\"></script>\n" + chartMetering + chartWeather + billing + ballance + "<div id='transformer-elements' style=\"text-align: center;\"/>" + "<script src=\"http://canvasjs.com/assets/script/canvasjs.min.js\"></script>\n" + "<script src=\"/sg/assets/sg.js\"></script>\n" + "<script type=\"text/javascript\">\n" + "updateCounterListener(\"bill\",\"#bill\"); \n" + "updateCounterListener(\"powerdump\",\"#accumpower\");\n" + "updateListeners(\"generation\",charts.chart1,LASTGENERATED);\n" + "updateListeners(\"consumption\",charts.chart1,LASTCONSUMPTION);\n" + "updateListeners(\"demand\",charts.chart1,LASTDEMAND);\n" + "updateListeners(\"wind\",charts.chart2,WIND);\n" + "updateListeners(\"sun\",charts.chart2,SUN);\n" + "</script>\n" + "</body>\n" + "</html>\n"; return page; }
From source file:net.sf.sgsimulator.sgsrest.vertx.controllers.PageController.java
License:Open Source License
@GET("/panel") public synchronized String getPanel(RoutingContext ctx) { SocketAddress remote = ctx.request().remoteAddress(); JsonObject obj = new JsonObject().put("host", remote.host()).put("port", remote.port()); // ctx.response().end(obj.encodePrettily()); String host = obj.getString("host"); if (panelPerKey.containsKey(host)) return panelPerKey.get(host); counter = counter + 1;//from ww w .j a v a 2 s.c o m String page = "Not working. Contact the administrator"; if (System.getProperties().get("sgsimulator.scenario") == null) System.getProperties().put("sgsimulator.scenario", "solarbyperson"); switch (System.getProperties().get("sgsimulator.scenario").toString().toLowerCase()) { case "fulloperational": String ptrans = " $.getJSON('/sg/query/transformer-names', function (data) {" + "var items = [];\n" + "console.log(data);\n" + "$.each(data.result, function (index, tName) {\n" + " updateTransformers(tName);\n" + "});\n" + "});\n"; /*{ int id = 0; for (String transformer : gL.getTransformerNames()) { ptrans = ptrans + "<h1>" + transformer + "</h1>\n"; for (ElementEMS generator : gL.getGeneratorsByTransformer(transformer)) { ptrans = ptrans + generateButtonCode(generator.getName(), generator.getMaxPower(), id); id = id + 1; } ; } }*/ page = "<!DOCTYPE html><html><head><link href=\"/sg/assets/sg.css\" />\n" + "<style></style><meta charset=\"utf-8\"><title>SG Charts</title></head><body> \n" + "<script src=\"https://code.jquery.com/jquery-3.2.0.min.js\"></script>\n" + chartMetering + chartWeather + ballance + "<H2>Assigned panels</h2>" + "<div id='transformer-elements' style=\"text-align: center;\"/>" + "<script src=\"http://canvasjs.com/assets/script/canvasjs.min.js\"></script>\n" + "<script src=\"/sg/assets/sg.js\"></script>\n" + "<script type=\"text/javascript\">\n" + "updateCounterListener(\"bill\",\"#bill\"); \n" + "updateCounterListener(\"powerdump\",\"#accumpower\");\n" + "updateListeners(\"generation\",charts.chart1,LASTGENERATED);\n" + "updateListeners(\"consumption\",charts.chart1,LASTCONSUMPTION);\n" + "updateListeners(\"demand\",charts.chart1,LASTDEMAND);\n" + "updateListeners(\"wind\",charts.chart2,WIND);\n" + "updateListeners(\"sun\",charts.chart2,SUN);\n" + ptrans + "</script>\n" + "</body>\n" + "</html>\n"; id = id + 1; break; case "centralized": // one 1 weather + 1 solar panel per person except the controller // controller has weather+metering+billing+ballance if (remaining.isEmpty()) { int id = 0; Vector<String> panels = new Vector<String>(); remaining.put("panel", panels); for (String transformer : gL.getTransformerNames()) { for (ElementEMS generator : gL.getGeneratorsByTransformer(transformer)) { panels.add(generator.getName()); } ; } ; Vector<String> centrals = new Vector<String>(); centrals.add("firstandonly"); remaining.put("central", centrals); shake(panels); // make vector randomly organized shake(centrals); // make vector randomly organized } if (remaining.get("panel").size() == 0 && remaining.get("central").size() == 0) { page = "<h1>No more panels, sorry. Wait for the microgrid to be restarted</h1>"; } else { if (remaining.get("panel").size() > 0) { String panel = remaining.get("panel").remove(0); int id = 0; String button = generateButtonCode("transformer-elements", panel, Math.abs(this.gL.getElementByName(panel).getMaxPower() / 1000), id); page = "<!DOCTYPE html><html><head><link href=\"/sg/assets/sg.css\" />\n" + "<style></style><meta charset=\"utf-8\"><title>SG Charts</title></head><body> \n" + "<H1>Solar Panel node :" + panel + " </H1>" + "<script src=\"https://code.jquery.com/jquery-3.2.0.min.js\"></script>\n" + chartWeather + "<div id='transformer-elements' style=\"text-align: center;\"/>" + "<script src=\"http://canvasjs.com/assets/script/canvasjs.min.js\"></script>\n" + "<script src=\"/sg/assets/sg.js\"></script>\n" + "<script type=\"text/javascript\">\n" + "updateListeners(\"wind\",charts.chart2,WIND);\n" + "updateListeners(\"sun\",charts.chart2,SUN);\n" + button + "</script>\n" + "</body>\n" + "</html>\n"; } else if (remaining.get("central").size() > 0) { page = "<!DOCTYPE html><html><head><link href=\"/sg/assets/sg.css\" />\n" + "<style></style><meta charset=\"utf-8\"><title>SG Charts</title></head><body> \n" + "<H1>SCADA central node</H1>" + "<script src=\"https://code.jquery.com/jquery-3.2.0.min.js\"></script>\n" + chartMetering + chartWeather + ballance + billing + "<script src=\"http://canvasjs.com/assets/script/canvasjs.min.js\"></script>\n" + "<script src=\"/sg/assets/sg.js\"></script>\n" + "<script type=\"text/javascript\">\n" + "updateCounterListener(\"bill\",\"#bill\"); \n" + "updateCounterListener(\"powerdump\",\"#accumpower\");\n" + "updateListeners(\"generation\",charts.chart1,LASTGENERATED);\n" + "updateListeners(\"consumption\",charts.chart1,LASTCONSUMPTION);\n" + "updateListeners(\"demand\",charts.chart1,LASTDEMAND);\n" + "updateListeners(\"wind\",charts.chart2,WIND);\n" + "updateListeners(\"sun\",charts.chart2,SUN);\n" + "</script>\n" + "</body>\n" + "</html>\n"; remaining.get("central").remove(0); } } break; case "fullsolarbyperson": default: if (available.isEmpty()) { for (String transformer : gL.getTransformerNames()) { for (ElementEMS generator : gL.getGeneratorsByTransformer(transformer)) { available.put(generator.getName(), true); } ; } } if (available.values().contains(true)) { String found = ""; for (String key : available.keySet()) { if (available.get(key)) { found = key; } } if (found != "") { ptrans = generateButtonCode("transformer-elements", found, this.gL.getElementByName(found).getMaxPower(), id); page = "<!DOCTYPE html><html><head><link href=\"/sg/assets/sg.css\" />\n" + "<style></style><meta charset=\"utf-8\"><title>SG Charts</title></head><body> \n" + "<script src=\"https://code.jquery.com/jquery-3.2.0.min.js\"></script>\n" + chartMetering + chartWeather + ballance + "<H1>Assigned panels</h1>" + "<div id='transformer-elements'/>" + "<script src=\"http://canvasjs.com/assets/script/canvasjs.min.js\"></script>\n" + "<script src=\"/sg/assets/sg.js\"></script>\n" + "<script type=\"text/javascript\">\n" + "updateCounterListener(\"bill\",\"#bill\"); \n" + "updateCounterListener(\"powerdump\",\"#accumpower\");\n" + "updateListeners(\"generation\",charts.chart1,LASTGENERATED);\n" + "updateListeners(\"consumption\",charts.chart1,LASTCONSUMPTION);\n" + "updateListeners(\"demand\",charts.chart1,LASTDEMAND);\n" + "updateListeners(\"wind\",charts.chart2,WIND);\n" + "updateListeners(\"sun\",charts.chart2,SUN);\n" + ptrans + "</script>\n" + "</body>\n" + "</html>\n"; id = id + 1; } else page = "All elements have been assigned. Try again later"; } } panelPerKey.put(host, page); return page; }
From source file:net.sf.sgsimulator.sgsrest.vertx.services.GridLabSimulatorService.java
License:Open Source License
private void onInit(Vertx vertx, JsonObject config) throws IOException { config = config.getJsonObject("gridlab"); int cycleTimeInMillis = config.getInteger("cycleTimeInMillis");// 60000; boolean intelligence = config.getBoolean("intelligence");// true; int moments = config.getInteger("moments");// 30; Double minRange = config.getDouble("minRange", null); Double maxRange = config.getDouble("maxRange", null); millisperwebpoll = config.getDouble("millisperwebpoll", null); boolean activeClients = config.getBoolean("activeClients");// true; // TODO parametrize Tariff tariff = new TariffExample(); JsonArray sdjson = config.getJsonArray("startDate"); JsonArray edjson = config.getJsonArray("endDate"); Calendar calendarStart = Calendar.getInstance(); calendarStart.set(sdjson.getInteger(0), sdjson.getInteger(1), sdjson.getInteger(2), sdjson.getInteger(3), sdjson.getInteger(4), sdjson.getInteger(5)); Calendar calendarEnd = Calendar.getInstance(); calendarEnd.set(edjson.getInteger(0), edjson.getInteger(1), edjson.getInteger(2), edjson.getInteger(3), edjson.getInteger(4), edjson.getInteger(5)); String configurationFile = config.getString("configurationFile"); String gridFile = config.getString("gridFile"); // definition String scenarioFile = config.getString("scenarioFile"); String gridLabFolder = config.getString("gridLabFolder"); PATHS paths = new PATHS(configurationFile, gridFile, scenarioFile, gridLabFolder); Date[] dates = readSimulationTime(paths.getNetXmlSrcFile()); long diffInMillies = calendarEnd.getTimeInMillis() - calendarStart.getTimeInMillis(); int hoursOfSimulation = (int) TimeUnit.HOURS.convert(diffInMillies, TimeUnit.MILLISECONDS); startDate = calendarStart.getTime(); init(title, startDate, cycleTimeInMillis, paths, intelligence, hoursOfSimulation, tariff, moments, minRange, maxRange, activeClients);// w w w . j a v a 2 s . co m }
From source file:org.bdlions.server.AuthServer.java
@Override public void start() { HttpServer server = vertx.createHttpServer(); Router router = Router.router(vertx); router.route("/").handler((RoutingContext routingContext) -> { HttpServerResponse response = routingContext.response(); response.end("Authentication server"); });/*ww w. ja va2 s . c o m*/ //adding a new sim with services router.route("/addsim*").handler(BodyHandler.create()); router.post("/addsim").handler((RoutingContext routingContext) -> { ResultEvent resultEvent = new ResultEvent(); //sim no String simNo = routingContext.request().getParam("sim_no"); //web server identifier String identifier = routingContext.request().getParam("identifier"); //description of the sim String description = routingContext.request().getParam("description"); //status of the sim String statusStr = routingContext.request().getParam("status"); //sim service list String simServiceList = routingContext.request().getParam("sim_service_list"); int status = 0; try { status = Integer.parseInt(statusStr); } catch (Exception ex) { logger.error(ex.getMessage()); } try { SIMManager simManager = new SIMManager(); SIMInfo simInfo = new SIMInfo(); simInfo.setSimNo(simNo); simInfo.setIdentifier(identifier); simInfo.setDescription(description); simInfo.setStatus(status); JsonArray simServiceArray = new JsonArray(simServiceList); for (int counter = 0; counter < simServiceArray.size(); counter++) { JsonObject simServiceObject = new JsonObject(simServiceArray.getValue(counter).toString()); String serviceIdStr = simServiceObject.getString("serviceId"); String categoryIdStr = simServiceObject.getString("categoryId"); String currentBalanceStr = simServiceObject.getString("currentBalance"); double currentBalance = 0; try { currentBalance = Double.parseDouble(currentBalanceStr); } catch (Exception ex) { logger.error(ex.getMessage()); } SIMServiceInfo simServiceInfo = new SIMServiceInfo(); simServiceInfo.setCurrentBalance(currentBalance); simServiceInfo.setId(Integer.parseInt(serviceIdStr)); simServiceInfo.setCategoryId(Integer.parseInt(categoryIdStr)); simInfo.getSimServiceList().add(simServiceInfo); } simManager.addSIM(simInfo); resultEvent.setResponseCode(simManager.getResponseCode()); resultEvent.setResult(simInfo); } catch (Exception ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_INVALID_AMOUNT); logger.error(ex.getMessage()); } HttpServerResponse response = routingContext.response(); response.end(resultEvent.toString()); }); //edit sim info router.route("/editsim*").handler(BodyHandler.create()); router.post("/editsim").handler((RoutingContext routingContext) -> { ResultEvent resultEvent = new ResultEvent(); //based on the identifier validate that given sim_no is valid for this identifier String simNo = routingContext.request().getParam("sim_no"); String identifier = routingContext.request().getParam("identifier"); String description = routingContext.request().getParam("description"); String statusStr = routingContext.request().getParam("status"); int status = 0; try { status = Integer.parseInt(statusStr); } catch (Exception ex) { logger.error(ex.getMessage()); } try { SIMManager simManager = new SIMManager(); SIMInfo simInfo = new SIMInfo(); simInfo.setSimNo(simNo); simInfo.setIdentifier(identifier); simInfo.setDescription(description); simInfo.setStatus(status); simManager.updateSIMInfo(simInfo); resultEvent.setResponseCode(simManager.getResponseCode()); resultEvent.setResult(simInfo); } catch (Exception ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_SERVER_EXCEPTION); logger.error(ex.getMessage()); } if (status == 0) { //stopping mqtt future client for this sim try { TransactionInfo transactionInfo = new TransactionInfo(); transactionInfo.setServiceId(-1); transactionInfo.setCellNumber(simNo); BufferManager bufferManager = new BufferManager(); bufferManager.setLocalServerIdentifier(identifier); bufferManager.processBuffer(transactionInfo, Transactions.BUFFER_PROCESS_TYPE_MQTT_STOP_SIM); } catch (Exception ex) { logger.debug(ex.toString()); } } HttpServerResponse response = routingContext.response(); response.end(resultEvent.toString()); }); //return sim with service details router.route("/getsimserviceinfo*").handler(BodyHandler.create()); router.post("/getsimserviceinfo").handler((RoutingContext routingContext) -> { ResultEvent resultEvent = new ResultEvent(); //sim no String simNo = routingContext.request().getParam("sim_no"); try { SIMManager simManager = new SIMManager(); SIMInfo simInfo = simManager.getSIMServiceInfo(simNo); if (simInfo != null) { resultEvent.setResponseCode(ResponseCodes.SUCCESS); resultEvent.setResult(simInfo); } else { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_INVALID_SIMNO); } } catch (Exception ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_SERVER_EXCEPTION); logger.error(ex.getMessage()); } HttpServerResponse response = routingContext.response(); response.end(resultEvent.toString()); }); //return all sims router.route("/getallsims*").handler(BodyHandler.create()); router.post("/getallsims").handler((RoutingContext routingContext) -> { ResultEvent resultEvent = new ResultEvent(); //identifier of a webserver String identifier = routingContext.request().getParam("identifier"); try { SIMManager simManager = new SIMManager(); List<SIMInfo> simList = simManager.getAllSIMs(identifier); resultEvent.setResponseCode(ResponseCodes.SUCCESS); resultEvent.setResult(simList); } catch (Exception ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_INVALID_IDENTIFIER); logger.error(ex.getMessage()); } HttpServerResponse response = routingContext.response(); response.end(resultEvent.toString()); }); router.route("/getallsimsservices*").handler(BodyHandler.create()); router.post("/getallsims").handler((RoutingContext routingContext) -> { ResultEvent resultEvent = new ResultEvent(); String identifier = routingContext.request().getParam("identifier"); try { SIMManager simManager = new SIMManager(); List<SIMInfo> simList = simManager.getAllSIMsServices(identifier); resultEvent.setResponseCode(ResponseCodes.SUCCESS); resultEvent.setResult(simList); } catch (Exception ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_INVALID_IDENTIFIER); logger.error(ex.getMessage()); } HttpServerResponse response = routingContext.response(); response.end(resultEvent.toString()); }); router.route("/checksimbalance*").handler(BodyHandler.create()); router.post("/checksimbalance").handler((RoutingContext routingContext) -> { ResultEvent resultEvent = new ResultEvent(); String simNo = routingContext.request().getParam("sim_no"); try { SIMManager simManager = new SIMManager(); SIMInfo simInfo = simManager.getSIMServiceInfo(simNo); simManager.generateSIMBalance(simInfo); resultEvent.setResponseCode(ResponseCodes.SUCCESS); } catch (Exception ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_INVALID_AMOUNT); logger.error(ex.getMessage()); } HttpServerResponse response = routingContext.response(); response.end(resultEvent.toString()); }); router.route("/getsimmessages*").handler(BodyHandler.create()); router.post("/getsimmessages").handler((RoutingContext routingContext) -> { ResultEvent resultEvent = new ResultEvent(); String simNo = routingContext.request().getParam("sim_no"); String startTimeStr = routingContext.request().getParam("start_time"); String endTimeStr = routingContext.request().getParam("end_time"); String offsetStr = routingContext.request().getParam("offset"); String limitStr = routingContext.request().getParam("limit"); int startTime = 0; int endTime = 0; int offset = 0; int limit = 0; try { startTime = Integer.parseInt(startTimeStr); endTime = Integer.parseInt(endTimeStr); offset = Integer.parseInt(offsetStr); limit = Integer.parseInt(limitStr); } catch (Exception ex) { logger.error(ex.getMessage()); } try { SIMSMSListInfo simSMSListInfo = new SIMSMSListInfo(); SIMManager simManager = new SIMManager(); //setting total messages of this sim simSMSListInfo.setCounter(simManager.getSIMTotalMessages(simNo, startTime, endTime)); List<SIMSMSInfo> simSMSList; if (limit != 0) { simSMSList = simManager.getSIMMessages(simNo, startTime, endTime, offset, limit); } else { simSMSList = simManager.getAllSIMMessages(simNo, startTime, endTime); } //setting sim sms list simSMSListInfo.setSimSMSList(simSMSList); resultEvent.setResult(simSMSListInfo); resultEvent.setResponseCode(ResponseCodes.SUCCESS); } catch (Exception ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_INVALID_AMOUNT); logger.error(ex.getMessage()); } HttpServerResponse response = routingContext.response(); response.end(resultEvent.toString()); }); router.route("/registersubscriber*").handler(BodyHandler.create()); router.post("/registersubscriber").handler((RoutingContext routingContext) -> { ResultEvent resultEvent = new ResultEvent(); try { Database db = Database.getInstance(); Connection connection = db.getConnection(); if (connection == null) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_DB_SETUP_EXCEPTION); logger.info("Db connection not set."); } else { String userName = routingContext.request().getParam("username"); String maxMembers = routingContext.request().getParam("maxmembers"); String APIKey = routingContext.request().getParam("apikey"); try { UserInfo userInfo = new UserInfo(); userInfo.setReferenceUserName(userName); userInfo.setMaxMembers(Integer.parseInt(maxMembers)); userInfo.setRegistrationDate(1449141369); //right now we are setting a default expired time userInfo.setExpiredDate(2140000000); //right now are not restricting/validating ip address userInfo.setIpAddress("192.168.1.30"); UserServiceInfo userServiceInfo = new UserServiceInfo(); userServiceInfo.setServiceId(Services.SERVICE_TYPE_ID_BKASH_CASHIN); userServiceInfo.setAPIKey(APIKey); userServiceInfo.setRegistrationDate(1449141369); userServiceInfo.setExpiredDate(2140000000); //right now we have not implement call back function userServiceInfo.setCallbackFunction("callback30"); List<UserServiceInfo> userServiceInfoList = new ArrayList<>(); userServiceInfoList.add(userServiceInfo); AuthManager authManager = new AuthManager(); authManager.createSubscriber(userInfo, userServiceInfoList); int responseCode = authManager.getResponseCode(); resultEvent.setResponseCode(responseCode); } catch (Exception ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_INVALID_MEMBER_COUNTER); logger.error(ex.getMessage()); } } } catch (DBSetupException | SQLException ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_DB_SETUP_EXCEPTION); logger.error(ex.getMessage()); } HttpServerResponse response = routingContext.response(); response.end(resultEvent.toString()); }); router.route("/getsubscriberinfo*").handler(BodyHandler.create()); router.post("/getsubscriberinfo").handler((RoutingContext routingContext) -> { ResultEvent resultEvent = new ResultEvent(); try { Database db = Database.getInstance(); Connection connection = db.getConnection(); if (connection == null) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_DB_SETUP_EXCEPTION); logger.info("Db connection not set."); } else { String userName = routingContext.request().getParam("username"); try { UserInfo userInfo = new UserInfo(); userInfo.setSubscriberReferenceUserName(userName); AuthManager authManager = new AuthManager(); userInfo = authManager.getSubscriberInfo(userInfo); int responseCode = authManager.getResponseCode(); resultEvent.setResponseCode(responseCode); if (responseCode == ResponseCodes.SUCCESS) { resultEvent.setResult(userInfo); } } catch (Exception ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_INVALID_MEMBER_COUNTER); logger.error(ex.getMessage()); } } } catch (DBSetupException | SQLException ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_DB_SETUP_EXCEPTION); logger.error(ex.getMessage()); } HttpServerResponse response = routingContext.response(); response.end(resultEvent.toString()); }); router.route("/registermember*").handler(BodyHandler.create()); router.post("/registermember").handler((RoutingContext routingContext) -> { ResultEvent resultEvent = new ResultEvent(); String userName = routingContext.request().getParam("username"); String subscriberName = routingContext.request().getParam("subscribername"); UserInfo userInfo = new UserInfo(); userInfo.setReferenceUserName(userName); userInfo.setSubscriberReferenceUserName(subscriberName); //right now are not restricting/validating ip address userInfo.setIpAddress("192.168.1.30"); try { AuthManager authManager = new AuthManager(); authManager.createUser(userInfo); int responseCode = authManager.getResponseCode(); resultEvent.setResponseCode(responseCode); } catch (UnRegisterIPException ex) { //Right now we are skipping ipaddress validation } catch (SubscriptionExpireException ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_SUBSCRIPTION_PERIOD_EXPIRED); logger.error(ex.getMessage()); } catch (MaxMemberRegException ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_MAXINUM_MEMBERS_CREATION_REACHED); logger.error(ex.getMessage()); } HttpServerResponse response = routingContext.response(); response.end(resultEvent.toString()); }); router.route("/getsessioninfo").handler((RoutingContext routingContext) -> { String result = ""; UserInfo userInfo = new UserInfo(); userInfo.setReferenceUserName("ru31"); userInfo.setIpAddress("192.168.1.30"); try { AuthManager authManager = new AuthManager(); result = authManager.getSessionInfo(userInfo, "64hedl981o0suvld9r79kklta2"); } catch (SubscriptionExpireException | ServiceExpireException ex) { } HttpServerResponse response = routingContext.response(); response.end(result); }); router.route("/addsubscriberpayment*").handler(BodyHandler.create()); router.post("/addsubscriberpayment").handler((RoutingContext routingContext) -> { ResultEvent resultEvent = new ResultEvent(); String APIKey = routingContext.request().getParam("APIKey"); String amount = routingContext.request().getParam("amount"); TransactionInfo transactionInfo = new TransactionInfo(); transactionInfo.setAPIKey(APIKey); try { transactionInfo.setBalanceIn(Long.parseLong(amount)); TransactionManager transactionManager = new TransactionManager(); transactionManager.addUserPayment(transactionInfo); int responseCode = transactionManager.getResponseCode(); resultEvent.setResponseCode(responseCode); if (responseCode == ResponseCodes.SUCCESS) { transactionInfo.setTransactionId(transactionManager.getTransactionId()); resultEvent.setResult(transactionInfo); } } catch (Exception ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_INVALID_AMOUNT); logger.error(ex.getMessage()); } HttpServerResponse response = routingContext.response(); response.end(resultEvent.toString()); }); router.route("/getdeshboardinfolist*").handler(BodyHandler.create()); router.post("/getdeshboardinfolist").handler((RoutingContext routingContext) -> { JSONObject resultInfos = new JSONObject(); ResultEvent resultEvent = new ResultEvent(); String startUnixTime = routingContext.request().getParam("start_time"); String endUnixTime = routingContext.request().getParam("end_time"); try { //generate summary info JSONObject summaryInfo = new JSONObject(); summaryInfo.put("total_amount", 600000); summaryInfo.put("total_profit", 50000); summaryInfo.put("total_subscriber", 50); //generate survice rank list by volumn // return service rank list by acending order by volumn JSONObject serviceRankInfoByVolumn1 = new JSONObject(); serviceRankInfoByVolumn1.put("service_id", "101"); serviceRankInfoByVolumn1.put("total_amount", 30000); serviceRankInfoByVolumn1.put("total_profit", 5000); JSONObject serviceRankInfoByVolumn2 = new JSONObject(); serviceRankInfoByVolumn2.put("service_id", "1"); serviceRankInfoByVolumn2.put("total_amount", 20000); serviceRankInfoByVolumn2.put("total_profit", 1000); JSONObject serviceRankInfoByVolumn3 = new JSONObject(); serviceRankInfoByVolumn3.put("service_id", "3"); serviceRankInfoByVolumn3.put("total_amount", 10000); serviceRankInfoByVolumn3.put("total_profit", 500); List<JSONObject> serviceRankByVolumnList = new ArrayList<>(); serviceRankByVolumnList.add(serviceRankInfoByVolumn1); serviceRankByVolumnList.add(serviceRankInfoByVolumn2); serviceRankByVolumnList.add(serviceRankInfoByVolumn3); //generate survice profit rank list by volumn JSONObject serviceProfitRank1 = new JSONObject(); serviceProfitRank1.put("service_id", "101"); serviceProfitRank1.put("service_percentage", "30"); JSONObject serviceProfitRank2 = new JSONObject(); serviceProfitRank2.put("service_id", "1"); serviceProfitRank2.put("service_percentage", "10"); JSONObject serviceProfitRank3 = new JSONObject(); serviceProfitRank3.put("service_id", "2"); serviceProfitRank3.put("service_percentage", "10"); JSONObject serviceProfitRank4 = new JSONObject(); serviceProfitRank4.put("service_id", "3"); serviceProfitRank4.put("service_percentage", "15"); JSONObject serviceProfitRank5 = new JSONObject(); serviceProfitRank5.put("service_id", "4"); serviceProfitRank5.put("service_percentage", "10"); JSONObject serviceProfitRank6 = new JSONObject(); serviceProfitRank6.put("service_id", "102"); serviceProfitRank6.put("service_percentage", "15"); JSONObject serviceProfitRank7 = new JSONObject(); serviceProfitRank7.put("service_id", "103"); serviceProfitRank7.put("service_percentage", "1"); List<JSONObject> serviceProfitRankList = new ArrayList<>(); serviceProfitRankList.add(serviceProfitRank1); serviceProfitRankList.add(serviceProfitRank2); serviceProfitRankList.add(serviceProfitRank3); serviceProfitRankList.add(serviceProfitRank4); serviceProfitRankList.add(serviceProfitRank5); serviceProfitRankList.add(serviceProfitRank6); serviceProfitRankList.add(serviceProfitRank7); //generate Top customer rank list by volumn JSONObject customerInfo1 = new JSONObject(); customerInfo1.put("user_name", "Nazmul Hasan"); customerInfo1.put("amount_percentage", "50"); JSONObject customerInfo2 = new JSONObject(); customerInfo2.put("user_name", "Alamgir Kabir"); customerInfo2.put("amount_percentage", "30"); JSONObject customerInfo3 = new JSONObject(); customerInfo3.put("user_name", "Rashida Sultana"); customerInfo3.put("amount_percentage", "20"); List<JSONObject> topCustomerList = new ArrayList<>(); topCustomerList.add(customerInfo1); topCustomerList.add(customerInfo2); topCustomerList.add(customerInfo3); resultInfos.put("summaryInfo", summaryInfo); resultInfos.put("serviceRankByVolumnList", serviceRankByVolumnList); resultInfos.put("topCustomerList", topCustomerList); resultInfos.put("serviceProfitRankList", serviceProfitRankList); resultEvent.setResponseCode(ResponseCodes.SUCCESS); resultEvent.setResult(resultInfos); } catch (Exception ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_INVALID_AMOUNT); logger.error(ex.getMessage()); } HttpServerResponse response = routingContext.response(); response.end(resultInfos.toString()); }); router.route("/getServiceRanklistByVolumn*").handler(BodyHandler.create()); router.post("/getServiceRanklistByVolumn").handler((RoutingContext routingContext) -> { ResultEvent resultEvent = new ResultEvent(); List<JSONObject> serviceRankByVolumnList = new ArrayList<>(); String startDate = routingContext.request().getParam("start_date"); String endDate = routingContext.request().getParam("end_date"); try { //generate survice rank list by volumn // return service rank list by acending order by volumn JSONObject serviceRankInfoByVolumn1 = new JSONObject(); serviceRankInfoByVolumn1.put("service_id", "102"); serviceRankInfoByVolumn1.put("total_amount", 7000); serviceRankInfoByVolumn1.put("total_profit", 100); JSONObject serviceRankInfoByVolumn2 = new JSONObject(); serviceRankInfoByVolumn2.put("service_id", "1"); serviceRankInfoByVolumn2.put("total_amount", 2000); serviceRankInfoByVolumn2.put("total_profit", 2000); JSONObject serviceRankInfoByVolumn3 = new JSONObject(); serviceRankInfoByVolumn3.put("service_id", "2"); serviceRankInfoByVolumn3.put("total_amount", 30000); serviceRankInfoByVolumn3.put("total_profit", 500); // List<JSONObject> serviceRankByVolumnList = new ArrayList<>(); serviceRankByVolumnList.add(serviceRankInfoByVolumn1); serviceRankByVolumnList.add(serviceRankInfoByVolumn2); serviceRankByVolumnList.add(serviceRankInfoByVolumn3); resultEvent.setResponseCode(ResponseCodes.SUCCESS); resultEvent.setResult(serviceRankByVolumnList); } catch (Exception ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_INVALID_AMOUNT); logger.error(ex.getMessage()); } HttpServerResponse response = routingContext.response(); response.end(serviceRankByVolumnList.toString()); }); router.route("/getCustomerList*").handler(BodyHandler.create()); router.post("/getCustomerList").handler((RoutingContext routingContext) -> { ResultEvent resultEvent = new ResultEvent(); List<JSONObject> topCustomerList = new ArrayList<>(); String startDate = routingContext.request().getParam("start_date"); String endDate = routingContext.request().getParam("end_date"); String serviceId = routingContext.request().getParam("service_id"); try { //generate Top customer rank list by volumn JSONObject customerInfo1 = new JSONObject(); customerInfo1.put("user_name", "Rashida sultana"); customerInfo1.put("amount_percentage", "60"); JSONObject customerInfo2 = new JSONObject(); customerInfo2.put("user_name", "Alamgir Kabir"); customerInfo2.put("amount_percentage", "30"); JSONObject customerInfo3 = new JSONObject(); customerInfo3.put("user_name", "Nazmul Hasan"); customerInfo3.put("amount_percentage", "20"); // List<JSONObject> topCustomerList = new ArrayList<>(); topCustomerList.add(customerInfo1); topCustomerList.add(customerInfo2); topCustomerList.add(customerInfo3); resultEvent.setResponseCode(ResponseCodes.SUCCESS); resultEvent.setResult(topCustomerList); } catch (Exception ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_INVALID_AMOUNT); logger.error(ex.getMessage()); } HttpServerResponse response = routingContext.response(); response.end(topCustomerList.toString()); }); router.route("/getbaseurl*").handler(BodyHandler.create()); router.post("/getbaseurl").handler((RoutingContext routingContext) -> { ResultEvent resultEvent = new ResultEvent(); String opCode = routingContext.request().getParam("code"); try { AuthManager authManager = new AuthManager(); String baseURL = authManager.getBaseURLOPCode(opCode); if (baseURL != null && !baseURL.equals("")) { resultEvent.setResponseCode(ResponseCodes.SUCCESS); resultEvent.setResult(baseURL); } else { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_INVALID_OP_CODE); logger.error("baseURL request for invalid op code : " + opCode); } } catch (Exception ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_SERVER_EXCEPTION); logger.error(ex.getMessage()); } HttpServerResponse response = routingContext.response(); response.end(resultEvent.toString()); }); router.route("/getServiceProfitList*").handler(BodyHandler.create()); router.post("/getServiceProfitList").handler((RoutingContext routingContext) -> { ResultEvent resultEvent = new ResultEvent(); List<JSONObject> serviceProfitRankList = new ArrayList<>(); String startDate = routingContext.request().getParam("start_date"); String endDate = routingContext.request().getParam("end_date"); try { JSONObject serviceProfitRank1 = new JSONObject(); serviceProfitRank1.put("service_id", "101"); serviceProfitRank1.put("service_percentage", "20"); JSONObject serviceProfitRank2 = new JSONObject(); serviceProfitRank2.put("service_id", "1"); serviceProfitRank2.put("service_percentage", "20"); JSONObject serviceProfitRank3 = new JSONObject(); serviceProfitRank3.put("service_id", "2"); serviceProfitRank3.put("service_percentage", "10"); JSONObject serviceProfitRank4 = new JSONObject(); serviceProfitRank4.put("service_id", "3"); serviceProfitRank4.put("service_percentage", "15"); JSONObject serviceProfitRank5 = new JSONObject(); serviceProfitRank5.put("service_id", "4"); serviceProfitRank5.put("service_percentage", "5"); JSONObject serviceProfitRank6 = new JSONObject(); serviceProfitRank6.put("service_id", "102"); serviceProfitRank6.put("service_percentage", "15"); JSONObject serviceProfitRank7 = new JSONObject(); serviceProfitRank7.put("service_id", "103"); serviceProfitRank7.put("service_percentage", "10"); serviceProfitRankList.add(serviceProfitRank1); serviceProfitRankList.add(serviceProfitRank2); serviceProfitRankList.add(serviceProfitRank3); serviceProfitRankList.add(serviceProfitRank4); serviceProfitRankList.add(serviceProfitRank5); serviceProfitRankList.add(serviceProfitRank6); serviceProfitRankList.add(serviceProfitRank7); resultEvent.setResponseCode(ResponseCodes.SUCCESS); resultEvent.setResult(serviceProfitRankList); } catch (Exception ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_INVALID_AMOUNT); logger.error(ex.getMessage()); } HttpServerResponse response = routingContext.response(); response.end(serviceProfitRankList.toString()); }); server.requestHandler(router::accept).listen(4040); }
From source file:org.bdlions.server.ServiceAPIServer.java
@Override public void start() { HttpServer server = vertx.createHttpServer(); Router router = Router.router(vertx); router.route("/").handler((RoutingContext routingContext) -> { HttpServerResponse response = routingContext.response(); response.end("ServiceAPI server"); });/*w w w . j a v a 2s. com*/ //router.route("/addtransaction").handler((RoutingContext routingContext) -> { router.route("/addtransaction*").handler(BodyHandler.create()); router.post("/addtransaction").handler((RoutingContext routingContext) -> { HttpServerResponse response = routingContext.response(); ResultEvent resultEvent = new ResultEvent(); String userId = ""; String sessionId = ""; //validate userId and sessionId from the hashmap String APIKey = routingContext.request().getParam("APIKey"); String amount = routingContext.request().getParam("amount"); String cellNumber = routingContext.request().getParam("cell_no"); String packageId = routingContext.request().getParam("package_id"); String description = routingContext.request().getParam("description"); String liveTestFlag = routingContext.request().getParam("livetestflag"); TransactionInfo transactionInfo = new TransactionInfo(); transactionInfo.setAPIKey(APIKey); transactionInfo.setCellNumber(cellNumber); transactionInfo.setDescription(description); transactionInfo.setLiveTestFlag(liveTestFlag); transactionInfo.setEditable(Boolean.TRUE); try { transactionInfo.setPackageId(Integer.parseInt(packageId)); } catch (Exception ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_INVALID_OPERATOR_PACKAGE_ID); logger.error(ex.getMessage()); response.end(resultEvent.toString()); return; } try { transactionInfo.setBalanceOut(Double.parseDouble(amount)); } catch (Exception ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_INVALID_AMOUNT); logger.error(ex.getMessage()); response.end(resultEvent.toString()); return; } //for web server test transaction we are returning back from here if (transactionInfo.getLiveTestFlag().equals(Transactions.TRANSACTION_FLAG_WEBSERVER_TEST)) { resultEvent.setResponseCode(ResponseCodes.SUCCESS); transactionInfo.setTransactionId(Utils.getTransactionId()); resultEvent.setResult(transactionInfo); response.end(resultEvent.toString()); return; } BufferManager bufferManager = new BufferManager(); bufferManager.processBuffer(transactionInfo, Transactions.BUFFER_PROCESS_TYPE_ADD_TRANSACTION); int responseCode = bufferManager.getTransactionManager().getResponseCode(); resultEvent.setResponseCode(responseCode); if (responseCode == ResponseCodes.SUCCESS) { transactionInfo.setTransactionId(bufferManager.getTransactionManager().getTransactionId()); resultEvent.setResult(transactionInfo); } response.end(resultEvent.toString()); }); router.route("/addmultipletransactions*").handler(BodyHandler.create()); router.post("/addmultipletransactions").handler((RoutingContext routingContext) -> { ResultEvent resultEvent = new ResultEvent(); HttpServerResponse response = routingContext.response(); List<TransactionInfo> transactionInfoList = new ArrayList<>(); String transactionList = routingContext.request().getParam("transction_list"); String liveTestFlag = routingContext.request().getParam("livetestflag"); JsonArray transactionArray = new JsonArray(transactionList); BufferManager bufferManager = new BufferManager(); for (int counter = 0; counter < transactionArray.size(); counter++) { JsonObject jsonObject = new JsonObject(transactionArray.getValue(counter).toString()); String id = jsonObject.getString("id"); String cellNo = jsonObject.getString("cell_no"); String APIKey = jsonObject.getString("APIKey"); String packageId = jsonObject.getString("operator_type_id"); String amount = jsonObject.getString("amount"); TransactionInfo transactionInfo = new TransactionInfo(); transactionInfo.setEditable(Boolean.TRUE); transactionInfo.setAPIKey(APIKey); try { transactionInfo.setPackageId(Integer.parseInt(packageId)); } catch (Exception ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_INVALID_OPERATOR_PACKAGE_ID); logger.error(ex.getMessage()); response.end(resultEvent.toString()); return; } try { transactionInfo.setBalanceOut(Double.parseDouble(amount)); } catch (Exception ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_INVALID_AMOUNT); logger.error(ex.getMessage()); response.end(resultEvent.toString()); return; } transactionInfo.setLiveTestFlag(liveTestFlag); transactionInfo.setCellNumber(cellNo); transactionInfo.setReferenceId(id); //for web server test transaction we are returning back from here if (transactionInfo.getLiveTestFlag().equals(Transactions.TRANSACTION_FLAG_WEBSERVER_TEST)) { transactionInfo.setTransactionId(Utils.getTransactionId()); } else { //transactionInfo.setTransactionId(Utils.getTransactionId()); //UserServiceInfo userServiceInfo = transactionManager.getUserServiceInfo(APIKey); //transactionInfo.setServiceId(userServiceInfo.getServiceId()); //transactionManager.addTransaction(transactionInfo); bufferManager.processBuffer(transactionInfo, Transactions.BUFFER_PROCESS_TYPE_ADD_TRANSACTION); int responseCode = bufferManager.getTransactionManager().getResponseCode(); if (responseCode == ResponseCodes.SUCCESS) { transactionInfo.setTransactionId(bufferManager.getTransactionManager().getTransactionId()); } //what will you do if response code is not success? } transactionInfoList.add(transactionInfo); } resultEvent.setResult(transactionInfoList); resultEvent.setResponseCode(ResponseCodes.SUCCESS); response.end(resultEvent.toString()); }); router.route("/updatetransactioninfo*").handler(BodyHandler.create()); router.post("/updatetransactioninfo").handler((RoutingContext routingContext) -> { HttpServerResponse response = routingContext.response(); ResultEvent resultEvent = new ResultEvent(); String transactionId = routingContext.request().getParam("transaction_id"); String amount = routingContext.request().getParam("amount"); String cellNumber = routingContext.request().getParam("cell_no"); TransactionInfo transactionInfo = new TransactionInfo(); transactionInfo.setTransactionId(transactionId); transactionInfo.setCellNumber(cellNumber); transactionInfo.setEditable(Boolean.TRUE); try { transactionInfo.setBalanceOut(Double.parseDouble(amount)); } catch (Exception ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_INVALID_AMOUNT); logger.error(ex.getMessage()); response.end(resultEvent.toString()); return; } BufferManager bufferManager = new BufferManager(); bufferManager.processBuffer(transactionInfo, Transactions.BUFFER_PROCESS_TYPE_UPDATE_TRANSACTION); int responseCode = bufferManager.getTransactionManager().getResponseCode(); resultEvent.setResponseCode(responseCode); if (responseCode == ResponseCodes.SUCCESS) { resultEvent.setResult(transactionInfo); } response.end(resultEvent.toString()); }); //updating transaction acknowledge status from local server router.route("/transactionstatusack*").handler(BodyHandler.create()); router.post("/transactionstatusack").handler((RoutingContext routingContext) -> { ResultEvent resultEvent = new ResultEvent(); //our system transaction id String transactionId = routingContext.request().getParam("transactionid"); //transaction status id String statusIdStr = routingContext.request().getParam("statusid"); System.out.println("Updating transaction status ack ----------------transactionId:" + transactionId + ",statusIdStr:" + statusIdStr); int statusId = 0; try { statusId = Integer.parseInt(statusIdStr); } catch (Exception ex) { logger.error(ex.getMessage()); } //updating transaction status acknowledgement try { TransactionInfo transactionInfo = new TransactionInfo(); transactionInfo.setTransactionId(transactionId); transactionInfo.setTransactionStatusId(statusId); TransactionManager transactionManager = new TransactionManager(); transactionManager.updateTransactionStatusAck(transactionInfo); int responseCode = transactionManager.getResponseCode(); resultEvent.setResponseCode(responseCode); } catch (Exception ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_UPDATE_TRANSACTION_STATUS_ACK_FAILED); logger.error(ex.getMessage()); } HttpServerResponse response = routingContext.response(); response.end(resultEvent.toString()); }); //updating transaction status with other parameters for ussd call at local server router.route("/updatetransactionstatus*").handler(BodyHandler.create()); router.post("/updatetransactionstatus").handler((RoutingContext routingContext) -> { ResultEvent resultEvent = new ResultEvent(); //our system transaction id String transactionId = routingContext.request().getParam("transactionid"); //transaction status id String statusIdStr = routingContext.request().getParam("statusid"); // transaction id from operator String trxIdOperator = routingContext.request().getParam("trxidoperator"); //sender cell number String senderCellNumber = routingContext.request().getParam("sendercellnumber"); //sim service id of sender String serviceIdStr = routingContext.request().getParam("serviceid"); //current balance of sender String balanceStr = routingContext.request().getParam("balance"); System.out.println("Updating transaction status----------------transactionId:" + transactionId + ",statusIdStr:" + statusIdStr + ",trxIdOperator:" + trxIdOperator + ",senderCellNumber:" + senderCellNumber + ",serviceIdStr:" + serviceIdStr + ",balanceStr:" + balanceStr); int statusId = 0; try { statusId = Integer.parseInt(statusIdStr); } catch (Exception ex) { logger.error(ex.getMessage()); } double balance = 0; try { balance = Double.parseDouble(balanceStr); } catch (Exception ex) { logger.error(ex.getMessage()); } int serviceId = 0; try { serviceId = Integer.parseInt(serviceIdStr); } catch (Exception ex) { logger.error(ex.getMessage()); } //updating transaction status with sender cell number and operator transaction id try { TransactionInfo transactionInfo = new TransactionInfo(); transactionInfo.setTransactionId(transactionId); transactionInfo.setTransactionStatusId(statusId); transactionInfo.setSenderCellNumber(senderCellNumber); transactionInfo.setTrxIdOperator(trxIdOperator); TransactionManager transactionManager = new TransactionManager(); transactionManager.updateTransactionStatus(transactionInfo); int responseCode = transactionManager.getResponseCode(); resultEvent.setResponseCode(responseCode); } catch (Exception ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_UPDATE_TRANSACTION_STATUS_FAILED); logger.error(ex.getMessage()); } //updating sim current balance try { SIMManager simManager = new SIMManager(); SIMInfo simInfo = new SIMInfo(); simInfo.setSimNo(senderCellNumber); SIMServiceInfo simServiceInfo = new SIMServiceInfo(); simServiceInfo.setCurrentBalance(balance); simServiceInfo.setId(serviceId); simInfo.getSimServiceList().add(simServiceInfo); simManager.updateSIMServiceBalanceInfo(simInfo); int responseCode = simManager.getResponseCode(); resultEvent.setResponseCode(responseCode); } catch (Exception ex) { logger.error(ex.getMessage()); } HttpServerResponse response = routingContext.response(); response.end(resultEvent.toString()); }); router.route("/updatestktransactionstatus*").handler(BodyHandler.create()); router.post("/updatestktransactionstatus").handler((RoutingContext routingContext) -> { ResultEvent resultEvent = new ResultEvent(); String serviceIdStr = routingContext.request().getParam("serviceId"); //expected format of cell number 8801711123456 String senderCellNumber = routingContext.request().getParam("sendercellnumber"); String currentBalanceStr = routingContext.request().getParam("currentbalance"); String APIKey = routingContext.request().getParam("apikey"); //expected format of cell number 01711123456 String cellNumber = routingContext.request().getParam("cellnumber"); String balanceStr = routingContext.request().getParam("balance"); //transaction id from operators String transactionId = routingContext.request().getParam("transactionid"); String statusIdStr = routingContext.request().getParam("statusid"); String sender = routingContext.request().getParam("sender"); String sms = routingContext.request().getParam("sms"); System.out.println("Updating stk transaction status----------------serviceIdStr:" + serviceIdStr + ",senderCellNumber:" + senderCellNumber + ",currentBalanceStr:" + currentBalanceStr + ",APIKey:" + APIKey + ",cellNumber:" + cellNumber + ",balanceStr:" + balanceStr + ",transactionId:" + transactionId + ",statusIdStr:" + statusIdStr + ",sender:" + sender + ",sms:" + sms); int serviceId = 0; try { serviceId = Integer.parseInt(serviceIdStr); } catch (Exception ex) { logger.debug("Invalid serviceId at updatestktransactionstatus-senderCellNumber:" + senderCellNumber + ",currentBalance:" + currentBalanceStr + ",APIKey:" + APIKey + ",cellNumber:" + cellNumber + ",balance:" + balanceStr + ",transactionId:" + transactionId + ",statusId:" + statusIdStr + ",serviceId:" + serviceIdStr); logger.debug(ex.getMessage()); } int statusId = 0; try { statusId = Integer.parseInt(statusIdStr); } catch (Exception ex) { logger.debug("Invalid statusId at updatestktransactionstatus-senderCellNumber:" + senderCellNumber + ",currentBalance:" + currentBalanceStr + ",APIKey:" + APIKey + ",cellNumber:" + cellNumber + ",balance:" + balanceStr + ",transactionId:" + transactionId + ",statusId:" + statusIdStr + ",serviceId:" + serviceIdStr); logger.debug(ex.getMessage()); } double currentBalance = 0; try { currentBalance = Double.parseDouble(currentBalanceStr); } catch (Exception ex) { logger.debug("Invalid current balance at updatestktransactionstatus-senderCellNumber:" + senderCellNumber + ",currentBalance:" + currentBalanceStr + ",APIKey:" + APIKey + ",cellNumber:" + cellNumber + ",balance:" + balanceStr + ",transactionId:" + transactionId + ",statusId:" + statusIdStr + ",serviceId:" + serviceIdStr); logger.debug(ex.getMessage()); } double balance = 0; try { balance = Double.parseDouble(balanceStr); } catch (Exception ex) { logger.debug("Invalid balance at updatestktransactionstatus-senderCellNumber:" + senderCellNumber + ",currentBalance:" + currentBalanceStr + ",APIKey:" + APIKey + ",cellNumber:" + cellNumber + ",balance:" + balanceStr + ",transactionId:" + transactionId + ",statusId:" + statusIdStr + ",serviceId:" + serviceIdStr); logger.debug(ex.getMessage()); } try { TransactionInfo transactionInfo = new TransactionInfo(); //updating transaction info transactionInfo.setSenderCellNumber(senderCellNumber); transactionInfo.setAPIKey(APIKey); transactionInfo.setCellNumber(cellNumber); transactionInfo.setBalanceOut(balance); transactionInfo.setTrxIdOperator(transactionId); transactionInfo.setTransactionStatusId(statusId); TransactionManager transactionManager = new TransactionManager(); transactionManager.updateLSSTKTransactionStatus(transactionInfo); int responseCode = transactionManager.getResponseCode(); if (responseCode == ResponseCodes.SUCCESS) { try { //updating SIM current balance for this service SIMManager simManager = new SIMManager(); SIMInfo simInfo = new SIMInfo(); simInfo.setSimNo(senderCellNumber); SIMServiceInfo simServiceInfo = new SIMServiceInfo(); simServiceInfo.setCurrentBalance(currentBalance); simServiceInfo.setId(serviceId); simInfo.getSimServiceList().add(simServiceInfo); simManager.updateSIMServiceBalanceInfo(simInfo); responseCode = simManager.getResponseCode(); resultEvent.setResponseCode(responseCode); SIMSMSInfo simSMSInfo = new SIMSMSInfo(); simSMSInfo.setSimNo(senderCellNumber); simSMSInfo.setSender(sender); simSMSInfo.setSms(sms); simManager.addSIMMessage(simSMSInfo); } catch (Exception ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_SIM_BALANCE_UPDATE_FAILED); logger.error(ex.getMessage()); } } resultEvent.setResponseCode(responseCode); } catch (Exception ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_UPDATE_TRANSACTION_STATUS_FAILED); logger.error(ex.getMessage()); } HttpServerResponse response = routingContext.response(); response.end(resultEvent.toString()); }); //this method will update sim balance of a service router.route("/updatesimbalance*").handler(BodyHandler.create()); router.post("/updatesimbalance").handler((RoutingContext routingContext) -> { ResultEvent resultEvent = new ResultEvent(); //sim service id String serviceIdStr = routingContext.request().getParam("serviceid"); //8801711123456 String senderCellNumber = routingContext.request().getParam("sendercellnumber"); //current balance of the sim under the sim service String balanceStr = routingContext.request().getParam("balance"); //sms sender title String sender = routingContext.request().getParam("sender"); //sms text String sms = routingContext.request().getParam("sms"); System.out.println( "Updating sim balance----------------serviceIdStr:" + serviceIdStr + ",senderCellNumber:" + senderCellNumber + ",balanceStr:" + balanceStr + ",sender:" + sender + ",sms:" + sms); double balance = 0; try { balance = Double.parseDouble(balanceStr); } catch (Exception ex) { logger.debug( "Invalid balance at updatesimbalance-senderCellNumber:" + senderCellNumber + ",balance:" + balanceStr + ",serviceId:" + serviceIdStr + ",sender:" + sender + ",sms:" + sms); logger.debug(ex.getMessage()); } int serviceId = 0; try { serviceId = Integer.parseInt(serviceIdStr); } catch (Exception ex) { logger.debug( "Invalid serviceId at updatesimbalance-senderCellNumber:" + senderCellNumber + ",balance:" + balanceStr + ",serviceId:" + serviceIdStr + ",sender:" + sender + ",sms:" + sms); logger.debug(ex.getMessage()); } try { SIMManager simManager = new SIMManager(); SIMInfo simInfo = new SIMInfo(); simInfo.setSimNo(senderCellNumber); SIMServiceInfo simServiceInfo = new SIMServiceInfo(); simServiceInfo.setCurrentBalance(balance); simServiceInfo.setId(serviceId); simInfo.getSimServiceList().add(simServiceInfo); simManager.updateSIMServiceBalanceInfo(simInfo); int responseCode = simManager.getResponseCode(); resultEvent.setResponseCode(responseCode); //saving sim sms if exists (there will sms for stk feature) if (sender != null && !sender.isEmpty() && sms != null && !sms.isEmpty()) { SIMSMSInfo simSMSInfo = new SIMSMSInfo(); simSMSInfo.setSimNo(senderCellNumber); simSMSInfo.setSender(sender); simSMSInfo.setSms(sms); simManager.addSIMMessage(simSMSInfo); } } catch (Exception ex) { logger.debug(ex.getMessage()); } HttpServerResponse response = routingContext.response(); response.end(resultEvent.toString()); }); //this method will update sim balance of a service router.route("/savesimsms*").handler(BodyHandler.create()); router.post("/savesimsms").handler((RoutingContext routingContext) -> { ResultEvent resultEvent = new ResultEvent(); //expected format is 8801711123456 String senderCellNumber = routingContext.request().getParam("sendercellnumber"); //sms sender title String sender = routingContext.request().getParam("sender"); //sms text String sms = routingContext.request().getParam("sms"); System.out.println("Saving sim sms----------------senderCellNumber:" + senderCellNumber + ",sender:" + sender + ",sms:" + sms); try { SIMManager simManager = new SIMManager(); SIMSMSInfo simSMSInfo = new SIMSMSInfo(); simSMSInfo.setSimNo(senderCellNumber); simSMSInfo.setSender(sender); simSMSInfo.setSms(sms); simManager.addSIMMessage(simSMSInfo); int responseCode = simManager.getResponseCode(); resultEvent.setResponseCode(responseCode); } catch (Exception ex) { logger.debug(ex.getMessage()); } HttpServerResponse response = routingContext.response(); response.end(resultEvent.toString()); }); /** * post method to send bulk sms * @param cellnumberlist, cell number list * @param sms, sms body * @param APIKey, APIKey * @param livetestflag, flag of transaction */ router.route("/sendsms*").handler(BodyHandler.create()); router.post("/sendsms").handler((RoutingContext routingContext) -> { HttpServerResponse response = routingContext.response(); ResultEvent resultEvent = new ResultEvent(); SMSTransactionInfo smsTransactionInfo = new SMSTransactionInfo(); String cellNumberList = routingContext.request().getParam("cellnumberlist"); String sms = routingContext.request().getParam("sms"); String APIKey = routingContext.request().getParam("APIKey"); String liveTestFlag = routingContext.request().getParam("livetestflag"); smsTransactionInfo.setLiveTestFlag(liveTestFlag); smsTransactionInfo.setSms(sms); smsTransactionInfo.setAPIKey(APIKey); JsonArray cellNumberArray = new JsonArray(cellNumberList); //JsonArray ja = new JsonArray(); for (int counter = 0; counter < cellNumberArray.size(); counter++) { JsonObject jsonObject = new JsonObject(cellNumberArray.getValue(counter).toString()); String id = jsonObject.getString("id"); String cellNo = jsonObject.getString("cell_no"); smsTransactionInfo.getCellNumberList().add(cellNo); //System.out.println(id); //System.out.println(cellNo); //JsonObject jO = new JsonObject(); //jO.put("id", id); //jO.put("cell_no", cellNo); //ja.add(jO); } try { TransactionManager transactionManager = new TransactionManager(); transactionManager.addSMSTransaction(smsTransactionInfo); int responseCode = transactionManager.getResponseCode(); resultEvent.setResponseCode(responseCode); if (responseCode == ResponseCodes.SUCCESS) { smsTransactionInfo.setTransactionId(transactionManager.getTransactionId()); resultEvent.setResult(smsTransactionInfo); } } catch (Exception ex) { resultEvent.setResponseCode(ResponseCodes.ERROR_CODE_WEBSERVICE_PROCESS_EXCEPTION); logger.error(ex.toString()); } response.end(resultEvent.toString()); }); router.route("/sendemail*").handler(BodyHandler.create()); router.post("/sendemail").handler((RoutingContext routingContext) -> { HttpServerResponse response = routingContext.response(); ResultEvent resultEvent = new ResultEvent(); String receiverEmail = routingContext.request().getParam("email"); String message = routingContext.request().getParam("message"); Email email = new Email(); email.sendEmail(receiverEmail, message); response.end(resultEvent.toString()); }); server.requestHandler(router::accept).listen(3030); }
From source file:org.eclipse.hono.authentication.impl.BaseAuthenticationService.java
License:Open Source License
private void processMessage(final Message<JsonObject> message) { final JsonObject body = message.body(); final String mechanism = body.getString(FIELD_MECHANISM); if (!isSupported(mechanism)) { replyWithError(message, ERROR_CODE_UNSUPPORTED_MECHANISM, "unsupported SASL mechanism"); } else {//from w ww . j a v a2 s . c om final byte[] response = body.getBinary(FIELD_RESPONSE); LOG.debug("received authentication request [mechanism: {}, response: {}]", mechanism, response != null ? "*****" : "empty"); validateResponse(mechanism, response, validation -> { if (validation.succeeded()) { replyWithAuthorizationId(message, validation.result()); } else { replyWithError(message, ERROR_CODE_AUTHENTICATION_FAILED, validation.cause().getMessage()); } }); } }
From source file:org.eclipse.hono.authorization.impl.BaseAuthorizationService.java
License:Open Source License
private void processMessage(final Message<JsonObject> message) { final JsonObject body = message.body(); final String authSubject = body.getString(AUTH_SUBJECT_FIELD); final Permission permission = Permission.valueOf(body.getString(PERMISSION_FIELD)); final ResourceIdentifier resource = ResourceIdentifier.fromString(body.getString(RESOURCE_FIELD)); boolean hasPermission = hasPermission(authSubject, resource, permission); message.reply(hasPermission ? ALLOWED : DENIED); LOG.debug("subject [{}] is {}allowed to {} on resource [{}]", authSubject, hasPermission ? "" : "not ", permission, resource);/*w w w. j a v a 2s .c o m*/ }
From source file:org.eclipse.hono.deviceregistry.FileBasedCredentialsService.java
License:Open Source License
private void parseCredentials(final JsonArray credentialsObject) { final AtomicInteger credentialsCount = new AtomicInteger(); log.debug("trying to load credentials for {} tenants", credentialsObject.size()); for (Object obj : credentialsObject) { JsonObject tenant = (JsonObject) obj; String tenantId = tenant.getString(FIELD_TENANT); Map<String, JsonArray> credentialsMap = new HashMap<>(); for (Object credentialsObj : tenant.getJsonArray(ARRAY_CREDENTIALS)) { JsonObject credentials = (JsonObject) credentialsObj; JsonArray authIdCredentials; if (credentialsMap.containsKey(credentials.getString(FIELD_AUTH_ID))) { authIdCredentials = credentialsMap.get(credentials.getString(FIELD_AUTH_ID)); } else { authIdCredentials = new JsonArray(); }//from w w w. j a v a2s .c o m authIdCredentials.add(credentials); credentialsMap.put(credentials.getString(FIELD_AUTH_ID), authIdCredentials); credentialsCount.incrementAndGet(); } credentials.put(tenantId, credentialsMap); } log.info("successfully loaded {} credentials from file [{}]", credentialsCount.get(), getConfig().getCredentialsFilename()); }
From source file:org.eclipse.hono.deviceregistry.FileBasedCredentialsService.java
License:Open Source License
private CredentialsResult<JsonObject> getCredentialsResult(final String tenantId, final String authId, final String type) { JsonObject data = getCredentials(tenantId, authId, type); if (data != null) { JsonObject resultPayload = getResultPayload(data.getString(FIELD_DEVICE_ID), data.getString(FIELD_TYPE), data.getString(FIELD_AUTH_ID), data.getBoolean(FIELD_ENABLED), data.getJsonArray(FIELD_SECRETS)); return CredentialsResult.from(HTTP_OK, resultPayload); } else {//from w ww . j a v a 2 s . c o m return CredentialsResult.from(HTTP_NOT_FOUND, (JsonObject) null); } }