Example usage for io.vertx.core.json JsonArray getValue

List of usage examples for io.vertx.core.json JsonArray getValue

Introduction

In this page you can find the example usage for io.vertx.core.json JsonArray getValue.

Prototype

public Object getValue(int pos) 

Source Link

Document

Get the value with the specified key, as an Object with types respecting the limitations of JSON.

Usage

From source file:com.groupon.vertx.redis.RedisTransaction.java

License:Apache License

private JsonObject constructTransactionCommandResult(JsonObject response, int index) {
    JsonArray responses = response.getJsonArray("data");
    if (responses != null && responses.size() > index) {
        Object commandResult = responses.getValue(index);
        JsonObject result = new JsonObject();
        result.put("status", response.getString("status"));
        if (commandResult instanceof JsonArray) {
            result.put("data", (JsonArray) commandResult);
        } else if (commandResult instanceof String) {
            result.put("data", (String) commandResult);
        } else if (commandResult instanceof Number) {
            result.put("data", (Number) commandResult);
        }/*from  ww w .  ja  v  a2s  . c o m*/
        return result;
    }
    return response;
}

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");
    });//from  www .jav a2 s . co  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");
    });/*  www . j  a va  2 s  .  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.entcore.auth.security.SamlValidator.java

License:Open Source License

/**
 * Build vector(s) representating user according to this profile
 *
 * @param userId userId neo4j//w  w  w  .  j  a  va  2  s  .c  om
 * @param handler handler containing results
 */
private void createVectors(String userId, final String host, final Handler<Either<String, JsonArray>> handler) {
    debug("create user Vector(s)");
    // browse supported type vector required by the service provider
    logger.info("createVectors init ");

    List<AttributeConsumingService> AttributesCS = spSSODescriptor.getAttributeConsumingServices();
    if (AttributesCS.size() > 0) {
        HashMap<String, List<String>> attributes = new HashMap<String, List<String>>();
        final JsonArray jsonArrayResult = new fr.wseduc.webutils.collections.JsonArray();

        for (final AttributeConsumingService attributeConsumingService : AttributesCS) {
            for (RequestedAttribute requestedAttribute : attributeConsumingService.getRequestAttributes()) {
                String vectorName = requestedAttribute.getName();
                if (vectorName.equals("FrEduVecteur")) {
                    samlVectorService = new FrEduVecteurService(neo4j);
                    samlVectorService.getVectors(userId, new Handler<Either<String, JsonArray>>() {
                        @Override
                        public void handle(Either<String, JsonArray> stringJsonArrayEither) {
                            if (stringJsonArrayEither.isRight()) {
                                JsonArray jsonArrayResultTemp = ((JsonArray) stringJsonArrayEither.right()
                                        .getValue());
                                for (int i = 0; i < jsonArrayResultTemp.size(); i++) {
                                    jsonArrayResult.add(jsonArrayResultTemp.getValue(i));
                                }
                                // add FrEduUrlRetour vector
                                for (RequestedAttribute requestedAttribute : attributeConsumingService
                                        .getRequestAttributes()) {
                                    String vectorName = requestedAttribute.getName();
                                    if (vectorName.equals("FrEduUrlRetour")) {
                                        JsonObject vectorRetour = new JsonObject().put("FrEduUrlRetour", host);
                                        jsonArrayResult.add(vectorRetour);
                                    }
                                }
                                handler.handle(new Either.Right<String, JsonArray>(jsonArrayResult));
                            }

                        }
                    });

                } else if (requestedAttribute.isRequired() && vectorName.equals("FrEduUrlRetour")) {
                    String error = "vector " + vectorName + " not implemented yet";
                    logger.error(error);
                    handler.handle(new Either.Left<String, JsonArray>(error));
                } else if (vectorName.equals("mail")) {
                    String error = "vector " + vectorName + " not implemented yet";
                    logger.error(error);
                    handler.handle(new Either.Left<String, JsonArray>(error));
                } else {
                    if (requestedAttribute.isRequired()) {
                        String error = "vector " + vectorName + " not supported for user " + userId;
                        logger.error(error);
                        handler.handle(new Either.Left<String, JsonArray>(error));
                    } else {
                        logger.debug("vector " + vectorName + " don't have to be supported.");
                    }
                }
            }
        }
    } else {
        String SPid = ((EntityDescriptor) spSSODescriptor.getParent()).getEntityID();
        if (SPid.isEmpty() || SPid == null) {
            logger.error("Service Providor ID is null or empty");
            handler.handle(new Either.Left<String, JsonArray>("Service Providor ID is null or empty"));
        } else {
            SamlServiceProvider sp = spFactory.serviceProvider(SPid);
            sp.generate(eb, userId, handler);
        }
    }
}

From source file:org.entcore.common.neo4j.Neo4jRest.java

License:Open Source License

private JsonArray transformJson(JsonObject json) {
    final JsonArray columns = json.getJsonArray("columns");
    final JsonArray data = json.getJsonArray("data");
    final JsonArray out = new fr.wseduc.webutils.collections.JsonArray();

    if (data != null && columns != null) {
        for (Object r : data) {
            JsonArray row;
            if (r instanceof JsonArray) {
                row = (JsonArray) r;//from  w w  w  .  j a va  2 s  . co  m
            } else if (r instanceof JsonObject) {
                row = ((JsonObject) r).getJsonArray("row");
            } else {
                continue;
            }
            JsonObject outRow = new fr.wseduc.webutils.collections.JsonObject();
            out.add(outRow);
            for (int j = 0; j < row.size(); j++) {
                Object value = row.getValue(j);
                if (value == null) {
                    outRow.put(columns.getString(j), (String) null);
                } else if (value instanceof String) {
                    outRow.put(columns.getString(j), (String) value);
                } else if (value instanceof JsonArray) {
                    outRow.put(columns.getString(j), (JsonArray) value);
                } else if (value instanceof JsonObject) {
                    outRow.put(columns.getString(j), (JsonObject) value);
                } else if (value instanceof Boolean) {
                    outRow.put(columns.getString(j), (Boolean) value);
                } else if (value instanceof Number) {
                    outRow.put(columns.getString(j), (Number) value);
                } else {
                    outRow.put(columns.getString(j), value.toString());
                }
            }
        }
    }
    return out;
}

From source file:org.entcore.common.neo4j.Neo4jResult.java

License:Open Source License

public static Either<String, JsonObject> validUniqueResult(Message<JsonObject> res) {
    Either<String, JsonArray> r = validResult(res);
    if (r.isRight()) {
        JsonArray results = r.right().getValue();
        if (results == null || results.size() == 0) {
            return new Either.Right<>(new JsonObject());
        }/*from   ww  w.j a va2 s.  co m*/
        if (results.size() == 1 && (results.getValue(0) instanceof JsonObject)) {
            return new Either.Right<>(results.getJsonObject(0));
        }
        return new Either.Left<>("non.unique.result");
    } else {
        return new Either.Left<>(r.left().getValue());
    }
}

From source file:org.entcore.common.neo4j.Neo4jResult.java

License:Open Source License

private static Either<String, JsonObject> validUniqueResult(int idx, Message<JsonObject> event) {
    Either<String, JsonArray> r = validResults(event);
    if (r.isRight()) {
        JsonArray results = r.right().getValue();
        if (results == null || results.size() == 0) {
            return new Either.Right<>(new JsonObject());
        } else {//w ww . j  a  va2s . c o m
            results = results.getJsonArray(idx);
            if (results.size() == 1 && (results.getValue(0) instanceof JsonObject)) {
                return new Either.Right<>(results.getJsonObject(0));
            }
        }
        return new Either.Left<>("non.unique.result");
    } else {
        return new Either.Left<>(r.left().getValue());
    }
}

From source file:org.entcore.common.share.impl.SqlShareService.java

License:Open Source License

@Override
public void shareInfos(final String userId, String resourceId, final String acceptLanguage, final String search,
        final Handler<Either<String, JsonObject>> handler) {
    if (userId == null || userId.trim().isEmpty()) {
        handler.handle(new Either.Left<String, JsonObject>("Invalid userId."));
        return;/*from  w  ww .  j  ava2s  . c o m*/
    }
    if (resourceId == null || resourceId.trim().isEmpty()) {
        handler.handle(new Either.Left<String, JsonObject>("Invalid resourceId."));
        return;
    }
    final JsonArray actions = getResoureActions(securedActions);
    String query = "SELECT s.member_id, s.action, m.group_id FROM " + shareTable + " AS s " + "JOIN " + schema
            + "members AS m ON s.member_id = m.id WHERE resource_id = ?";
    sql.prepared(query, new fr.wseduc.webutils.collections.JsonArray().add(Sql.parseId(resourceId)),
            new Handler<Message<JsonObject>>() {
                @Override
                public void handle(Message<JsonObject> message) {
                    if ("ok".equals(message.body().getString("status"))) {
                        JsonArray r = message.body().getJsonArray("results");
                        JsonObject groupCheckedActions = new JsonObject();
                        JsonObject userCheckedActions = new JsonObject();
                        for (Object o : r) {
                            if (!(o instanceof JsonArray))
                                continue;
                            JsonArray row = (JsonArray) o;
                            final String memberId = row.getString(0);
                            if (memberId == null || memberId.equals(userId))
                                continue;
                            final JsonObject checkedActions = (row.getValue(2) != null) ? groupCheckedActions
                                    : userCheckedActions;
                            JsonArray m = checkedActions.getJsonArray(memberId);
                            if (m == null) {
                                m = new fr.wseduc.webutils.collections.JsonArray();
                                checkedActions.put(memberId, m);
                            }
                            m.add(row.getValue(1));
                        }
                        getShareInfos(userId, actions, groupCheckedActions, userCheckedActions, acceptLanguage,
                                search, new Handler<JsonObject>() {
                                    @Override
                                    public void handle(JsonObject event) {
                                        if (event != null && event.size() == 3) {
                                            handler.handle(new Either.Right<String, JsonObject>(event));
                                        } else {
                                            handler.handle(new Either.Left<String, JsonObject>(
                                                    "Error finding shared resource."));
                                        }
                                    }
                                });
                    }
                }
            });
}

From source file:org.entcore.common.sql.SqlResult.java

License:Open Source License

private static Either<String, JsonObject> validUnique(Either<String, JsonArray> r) {
    if (r.isRight()) {
        JsonArray results = r.right().getValue();
        if (results == null || results.size() == 0) {
            return new Either.Right<>(new JsonObject());
        }//from  w  w  w.  j  a  va  2  s  .  c  o  m
        if (results.size() == 1 && (results.getValue(0) instanceof JsonObject)) {
            return new Either.Right<>(results.getJsonObject(0));
        }
        return new Either.Left<>("non.unique.result");
    } else {
        return new Either.Left<>(r.left().getValue());
    }
}

From source file:org.entcore.common.sql.SqlResult.java

License:Open Source License

private static JsonArray transform(JsonObject body) {
    JsonArray f = body.getJsonArray("fields");
    JsonArray r = body.getJsonArray("results");
    JsonArray result = new fr.wseduc.webutils.collections.JsonArray();
    if (f != null && r != null) {
        JsonArray jsonbAttributes = body.getJsonArray("jsonb_fields");
        List ja = (jsonbAttributes != null) ? jsonbAttributes.getList() : new ArrayList<>();
        for (Object o : r) {
            if (!(o instanceof JsonArray))
                continue;
            JsonArray a = (JsonArray) o;
            JsonObject j = new fr.wseduc.webutils.collections.JsonObject();
            for (int i = 0; i < f.size(); i++) {
                Object item = a.getValue(i);
                if (item instanceof Boolean) {
                    j.put(f.getString(i), (Boolean) item);
                } else if (item instanceof Number) {
                    j.put(f.getString(i), (Number) item);
                } else if (item instanceof JsonArray) {
                    j.put(f.getString(i), (JsonArray) item);
                } else if (item != null && ja.contains(f.getValue(i))) {
                    String stringRepresentation = item.toString().trim();
                    if (stringRepresentation.startsWith("[")) {
                        j.put(f.getString(i), new fr.wseduc.webutils.collections.JsonArray(item.toString()));
                    } else {
                        j.put(f.getString(i), new fr.wseduc.webutils.collections.JsonObject(item.toString()));
                    }/*from   www . j ava 2s .  c o m*/
                } else if (item != null) {
                    j.put(f.getString(i), item.toString());
                } else {
                    j.put(f.getString(i), (String) null);
                }
            }
            result.add(j);
        }
    }
    return result;
}