Example usage for com.google.gson JsonObject toString

List of usage examples for com.google.gson JsonObject toString

Introduction

In this page you can find the example usage for com.google.gson JsonObject toString.

Prototype

@Override
public String toString() 

Source Link

Document

Returns a String representation of this element.

Usage

From source file:com.bios.controller.services.DropSectionService.java

/**
 * Handles the HTTP <code>GET</code> method by allowing the administrator to drop a user's
 * enrollment in a section. This web service requires a valid token userid, course and section,
 * and a bid of the student, that was successful. The bid can only be dropped if the round 2 is active.
 * If succesful, a json object with the status "success" will be created. Otherwise, this method creates a
 * json object with the status "error" and with a json array of the errors that caused the unsuccessful
 * dropping of the section./*from   w ww.j  a va 2s .  c  o  m*/
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    ConnectionManager manager = new ConnectionManager();
    String requestObject = request.getParameter("r");
    String token = request.getParameter("token");
    ArrayList<String> errorList = new ArrayList<String>();

    JsonObject responseObject = new JsonObject();
    JsonArray allErrors = new JsonArray();

    if (requestObject == null) {
        errorList.add("missing r");
    } else if (requestObject.length() == 0) {
        errorList.add("blank r");
    }

    if (token == null) {
        errorList.add("missing token");
    } else if (token.length() == 0) {
        errorList.add("blank token");
    } else {
        try {
            String result = JWTUtility.verify(token, "abcdefgh12345678");
            if (!result.equals("admin")) {
                errorList.add("invalid token");
            }
        } catch (JWTException e) { // do we need this?
            // This means not an admin, or token expired
            errorList.add("invalid username/token");
        }
    }

    JsonElement jelementRequest = new JsonParser().parse(requestObject);
    JsonObject json = jelementRequest.getAsJsonObject();

    JsonElement crse = json.get("course");
    JsonElement sec = json.get("section");
    JsonElement user = json.get("userid");

    if (crse == null) {
        errorList.add("missing course");
    } else if (crse.getAsString().length() == 0) {
        errorList.add("blank course");
    }

    if (sec == null) {
        errorList.add("missing section");
    } else if (sec.getAsString().length() == 0) {
        errorList.add("blank section");
    }

    if (user == null) {
        errorList.add("missing userid");
    } else if (user.getAsString().length() == 0) {
        errorList.add("blank userid");
    }

    if (errorList.size() > 0) {
        errorList.sort(new ErrorMsgComparator());
        for (String s : errorList) {
            allErrors.add(new JsonPrimitive(s));
        }
        responseObject.addProperty("status", "error");
        responseObject.add("message", allErrors);
        response.setContentType("application/json");
        response.getWriter().write(responseObject.toString());
        return;
    }

    Student stud = StudentDAO.getInstance().retrieve(user.getAsString());
    Course c = CourseDAO.getInstance().findCourse(crse.getAsString());
    SectionStudent toBeDropped = SectionStudentDAO.getInstance().findSectionStudent(crse.getAsString(),
            sec.getAsString(), user.getAsString());
    Section s = SectionDAO.getInstance().findSection(crse.getAsString(), sec.getAsString());

    if (c == null) {
        allErrors.add(new JsonPrimitive("invalid course"));
    } else if (s == null) {
        allErrors.add(new JsonPrimitive("invalid section"));
    }
    if (stud == null) {
        allErrors.add(new JsonPrimitive("invalid userid"));
    }

    if (manager.getBiddingRound() == 2 && manager.getBiddingRoundStatus().equals("started")) {
        if (user != null) {
            if (toBeDropped != null) {
                double currAmount = stud.geteDollar();
                double amountFromDropping = toBeDropped.getAmount();
                double finalAmount = currAmount + amountFromDropping;

                manager.setEDollar(user.getAsString(), finalAmount);

                String userid = user.getAsString();
                String courseID = crse.getAsString();
                String sectionID = sec.getAsString();
                SectionStudentDAO.getInstance().deleteStudentSection(userid, amountFromDropping, courseID,
                        sectionID);
                SectionStudentDAO.getInstance().deleteStudentSectionFromDB(userid, amountFromDropping, courseID,
                        sectionID);
                BidDAO.getInstance().deleteBid(userid, courseID, sectionID);
                BidDAO.getInstance().deleteBidFromDB(userid, courseID, sectionID);

                responseObject.addProperty("status", "success");
            } else {
                JsonPrimitive value = new JsonPrimitive("no such enrollment record");
                allErrors.add(value);
                responseObject.addProperty("status", "error");
                responseObject.add("message", allErrors);
            }
        }

    } else {
        //round not active
        JsonPrimitive value = new JsonPrimitive("round not active");
        allErrors.add(value);
        responseObject.addProperty("status", "error");
        responseObject.add("message", allErrors);
    }
    response.setContentType("application/json");
    response.getWriter().write(responseObject.toString());
}

From source file:com.bios.controller.services.DumpBidService.java

/**
 * Handles the HTTP <code>GET</code> method which utilises a courseid and sectionid and a token of an administrator. After the courseid and
 * secitonid and token of the administrator is passed in, the method first verifies that the token is valid. If the token is valid, the
 * method checks the respective DAOs and retrieves the respective information of the bids placed and places it in the json object. If an
 * error occurs, such as a missing input, a json object is created with the status "error" with the error message respective to the error that
 * caused the unsuccessful dump.//from  ww w .ja v  a2 s  . c  o m
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    ConnectionManager manager = new ConnectionManager();
    String requestObject = request.getParameter("r");
    String token = request.getParameter("token");
    ArrayList<String> errorList = new ArrayList<String>();

    JsonObject responseObject = new JsonObject();
    JsonArray allErrors = new JsonArray();

    if (requestObject == null) {
        errorList.add("missing r");
    } else if (requestObject.length() == 0) {
        errorList.add("blank r");
    }

    if (token == null) {
        errorList.add("missing token");
    } else if (token.length() == 0) {
        errorList.add("blank token");
    } else {
        try {
            String result = JWTUtility.verify(token, "abcdefgh12345678");
            if (!result.equals("admin")) {
                errorList.add("invalid token");
            }
        } catch (JWTException e) { // do we need this?
            // This means not an admin, or token expired
            errorList.add("invalid username/token");
        }
    }

    JsonArray allBids = new JsonArray();

    JsonElement jelementRequest = new JsonParser().parse(requestObject);
    JsonObject json = jelementRequest.getAsJsonObject();

    JsonElement course = json.get("course");
    JsonElement section = json.get("section");

    if (course == null) {
        errorList.add("missing course");
    } else if (course.getAsString().length() == 0) {
        errorList.add("blank course");
    }

    if (section == null) {
        errorList.add("missing section");
    } else if (section.getAsString().length() == 0) {
        errorList.add("blank section");
    }

    if (errorList.size() > 0) {
        errorList.sort(new ErrorMsgComparator());
        for (String s : errorList) {
            allErrors.add(new JsonPrimitive(s));
        }
        responseObject.addProperty("status", "error");
        responseObject.add("message", allErrors);
        response.setContentType("application/json");
        response.getWriter().write(responseObject.toString());
        return;
    }

    ArrayList<Section> sectionList = SectionDAO.getInstance().getSectionList();
    Section s = SectionDAO.getInstance().findSection(course.getAsString(), section.getAsString());
    Course c = CourseDAO.getInstance().findCourse(course.getAsString());

    if (c == null) {
        JsonPrimitive value = new JsonPrimitive("invalid course");
        allErrors.add(value);
        responseObject.addProperty("status", "error");
        responseObject.add("message", allErrors);
    } else if (c != null && s == null) {
        JsonPrimitive value = new JsonPrimitive("invalid course");
        allErrors.add(value);
        responseObject.addProperty("status", "error");
        responseObject.add("message", allErrors);
    }

    int round = manager.getBiddingRound();
    String status = manager.getBiddingRoundStatus();
    //
    //        //round active: status is '-'
    //        if (c != null && s != null && status.equals("started")) {
    //            responseObject.addProperty("status", "success");
    //            BidDAO bidDAO = BidDAO.getInstance();
    //            ArrayList<Bid> successBids = bidDAO.getSuccessfulBidsWithID(c.getCourseID(), s.getSectionID());
    //            Collections.sort(successBids, new BidComparator());
    //            //arrange the names in ascending order - undone
    //            if (successBids.size() == 0) {
    //                System.out.println("PENDING:" + successBids.size());
    //            }
    //            for (int i = 0; i < successBids.size(); i++) {
    //                Bid currBid = successBids.get(i);
    //                System.out.println("Bid: " + currBid.getStatus());
    //                JsonObject obj = new JsonObject();
    //                obj.add("row", new JsonPrimitive((i + 1)));
    //                obj.add("userid", new JsonPrimitive(currBid.getUserID()));
    //                obj.add("amount", new JsonPrimitive(currBid.getAmount()));
    //                obj.add("result", new JsonPrimitive("-"));
    //
    //                allActiveBids.add(obj);
    //            }
    //
    //            responseObject.add("bids", allActiveBids);
    //
    //        } else if (c != null && s != null && status.equals("stopped")) {//notactive: status is successful/unsuccessful; bids should be in an array
    //            responseObject.addProperty("status", "success");
    //            ArrayList<Bid> allBids = BidDAO.getInstance().getBids(c.getCourseID(), s.getSectionID());
    //            allBids.sort(new BidComparator());
    //
    //            for (int i = 0; i < allBids.size(); i++) {
    //                Bid bid = allBids.get(i);
    //
    //                JsonObject obj = new JsonObject();
    //
    //                obj.add("row", new JsonPrimitive((i + 1)));
    //                obj.add("userid", new JsonPrimitive(bid.getUserID()));
    //                obj.add("amount", new JsonPrimitive(bid.getAmount()));
    //                if (bid.getStatus().equals("success")) {
    //                    obj.add("result", new JsonPrimitive("in"));
    //                } else {
    //                    obj.add("result", new JsonPrimitive("out"));
    //                }
    //                allInactiveBids.add(obj);
    //            }
    //
    //            responseObject.add("bids", allInactiveBids);
    //        }

    ArrayList<Bid> bidList = null;
    if (round == 1 && status.equals("started")) {
        bidList = BidDAO.getInstance().getBidList();
    } else if (status.equals("stopped") && round == 1) {
        bidList = RoundOneBidDAO.getInstance().getBidList();
    } else if (round == 2 && status.equals("started")) {
        bidList = BidDAO.getInstance().getPendingBids();
    } else {
        bidList = RoundTwoBidDAO.getInstance().getBidList();
    }

    bidList.sort(new BidComparator());
    System.out.println("BIDLIST: " + bidList.size());
    int count = 1;

    for (int i = 0; i < bidList.size(); i++) {
        Bid bid = bidList.get(i);

        if (bid.getCourseID().equals(course.getAsString())
                && bid.getSectionID().equals(section.getAsString())) {
            JsonObject obj = new JsonObject();

            obj.add("row", new JsonPrimitive(count));
            obj.add("userid", new JsonPrimitive(bid.getUserID()));
            obj.add("amount", new JsonPrimitive(bid.getAmount()));
            if (bid.getStatus().equals("pending")) {
                obj.add("result", new JsonPrimitive("-"));
            } else if (bid.getStatus().equals("success")) {
                obj.add("result", new JsonPrimitive("in"));
            } else {
                obj.add("result", new JsonPrimitive("out"));
            }
            allBids.add(obj);
            count++;
        }

    }
    responseObject.addProperty("status", "success");
    responseObject.add("bids", allBids);
    response.setContentType("application/json");
    response.getWriter().write(responseObject.toString());
}

From source file:com.bios.controller.services.DumpSectionService.java

/**
   * Handles the HTTP <code>GET</code> method which uses the courseid, a sectionid and  token of an administrator. After the
   * courseid, sectionid and token of the administrator is obtained, the method first verifies that the token is valid and present in the session
   * object. Subsequently, if  the token is valid, the method checks the respective DAOs and retrieves the respective information of the bids of
   * that particular courses section and places it in a json object. If an error occurs, such as a missing input, a json object will be created
   * with the status "error" and will reflect the errors in a json array within the object.
   * @param request servlet request/*from  w  w  w  . j a va 2  s . c  o  m*/
   * @param response servlet response
   * @throws ServletException if a servlet-specific error occurs
   * @throws IOException if an I/O error occurs
   */
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    ConnectionManager manager = new ConnectionManager();
    String requestObject = request.getParameter("r");
    String token = request.getParameter("token");
    ArrayList<String> errorList = new ArrayList<String>();

    JsonObject responseObject = new JsonObject();
    JsonArray allErrors = new JsonArray();

    if (requestObject == null) {
        errorList.add("missing r");
    } else if (requestObject.length() == 0) {
        errorList.add("blank r");
    }

    if (token == null) {
        errorList.add("missing token");
    } else if (token.length() == 0) {
        errorList.add("blank token");
    } else {
        try {
            String result = JWTUtility.verify(token, "abcdefgh12345678");
            if (!result.equals("admin")) {
                errorList.add("invalid token");
            }
        } catch (JWTException e) { // do we need this?
            // This means not an admin, or token expired
            errorList.add("invalid username/token");
        }
    }

    JsonElement jelementRequest = new JsonParser().parse(requestObject);
    JsonObject json = jelementRequest.getAsJsonObject();

    JsonElement crse = json.get("course");
    JsonElement sec = json.get("section");

    if (crse == null) {
        errorList.add("missing course");
    } else if (crse.getAsString().length() == 0) {
        errorList.add("blank course");
    }

    if (sec == null) {
        errorList.add("missing section");
    } else if (sec.getAsString().length() == 0) {
        errorList.add("blank section");
    }

    if (errorList.size() > 0) {
        errorList.sort(new ErrorMsgComparator());
        for (String s : errorList) {
            allErrors.add(new JsonPrimitive(s));
        }
        responseObject.addProperty("status", "error");
        responseObject.add("message", allErrors);
        response.setContentType("application/json");
        response.getWriter().write(responseObject.toString());
        return;
    }

    String courseID = crse.getAsString();
    String sectionID = sec.getAsString();

    int round = manager.getBiddingRound();
    String status = manager.getBiddingRoundStatus();

    // Will now check to see if there are any errors here
    Course course = CourseDAO.getInstance().findCourse(crse.getAsString());
    Section section = null;
    if (course == null) {
        allErrors.add(new JsonPrimitive("invalid course"));
    } else {
        section = SectionDAO.getInstance().findSection(course.getCourseID(), sec.getAsString());
        if (section == null) {
            allErrors.add(new JsonPrimitive("invalid section"));
        }
    }

    if (allErrors.size() != 0) {
        responseObject.add("status", new JsonPrimitive("error"));
        responseObject.add("message", allErrors);
        response.setContentType("application/json");
        response.getWriter().write(responseObject.toString());
        return;
    }

    JsonArray allResults = new JsonArray();
    ArrayList<SectionStudent> allSecStudList = SectionStudentDAO.getInstance()
            .getSectionStudentListWithID(crse.getAsString(), sec.getAsString());
    ArrayList<SectionStudent> secStudList = new ArrayList<>();

    for (SectionStudent secStud : allSecStudList) {
        if (secStud.getCourseID().equals(courseID) && secStud.getSectionID().equals(sectionID)) {
            secStudList.add(secStud);
        }
        //            String cID = secStud.getCourseID();
        //            String sID = secStud.getSectionID();
        //
        //            ArrayList<Bid> halfBids = new ArrayList<>();
        //            if (round == 1 || round == 2 && status.equals("started")) {
        //                halfBids = BidDAO.getInstance().getSuccessfulBidsWithID(cID, sID);
        //            } else if (round == 2 && status.equals("stopped")) {
        //                halfBids = BidDAO.getInstance().getBids(sID, sID);
        //            }
        //            allBids.addAll(halfBids);
    }

    secStudList.sort(new SectionStudentComparator());
    for (SectionStudent secStud : secStudList) {
        JsonObject obj = new JsonObject();
        obj.addProperty("userid", secStud.getUserID());
        obj.addProperty("amount", secStud.getAmount());
        allResults.add(obj);
    }

    //        // After we sort all the bids, then we shall add them to be responded to
    //        allBids.sort(new BidUserComparator());
    //        for (Bid bid : allBids) {
    //            JsonObject obj = new JsonObject();
    //            obj.add("userid", new JsonPrimitive(bid.getUserID()));
    //            obj.add("amount", new JsonPrimitive(bid.getAmount()));
    //            allResults.add(obj);
    //        }

    responseObject.add("status", new JsonPrimitive("success"));
    responseObject.add("students", allResults);

    response.setContentType("application/json");
    response.getWriter().write(responseObject.toString());
}

From source file:com.bios.controller.services.DumpTableService.java

/**
 * Handles the HTTP <code>GET</code> method that makes use of a token. If a token is valid and present in the session object, the method goes
 * on to create a json object. In the json object, the respective course, section, student, prerequisite, completed-course, bid and section-student
 * objects will be placed in the tables. If any errors occur, such as an invalid or blank token, a json object with the status "error" will be created a
 * with any error messages within a json array in the json object.
 *
 * @param request servlet request/*  ww w  .  ja  v  a 2s  . c o  m*/
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    ConnectionManager manager = new ConnectionManager();
    String token = request.getParameter("token");
    ArrayList<String> errorList = new ArrayList<String>();

    JsonObject responseObject = new JsonObject();
    JsonArray allErrors = new JsonArray();

    if (token == null) {
        errorList.add("missing token");
    } else if (token.length() == 0) {
        errorList.add("blank token");
    } else {
        try {
            String result = JWTUtility.verify(token, "abcdefgh12345678");
            if (!result.equals("admin")) {
                errorList.add("invalid token");
            }
        } catch (JWTException e) { // do we need this?
            // This means not an admin, or token expired
            errorList.add("invalid username/token");
        }
    }

    JsonObject object = new JsonObject();
    object.add("status", new JsonPrimitive("success"));

    ArrayList<Course> courseList = CourseDAO.getInstance().getCourseList();
    ArrayList<Section> sectionList = SectionDAO.getInstance().getSectionList();
    ArrayList<Student> studentList = StudentDAO.getInstance().getStudentList();
    ArrayList<Prerequisite> prerequisiteList = PrerequisiteDAO.getInstance().getPrerequisiteList();
    ArrayList<Bid> bidList = BidDAO.getInstance().getBidList();
    ArrayList<CompletedCourse> completeList = CompletedCourseDAO.getInstance().getCompletedCourseList();
    ArrayList<SectionStudent> sectionStudentList = SectionStudentDAO.getInstance().getSectionStudentList();

    courseList.sort(new CourseComparator());
    sectionList.sort(new SectionComparator());
    studentList.sort(new StudentComparator());
    prerequisiteList.sort(new PrerequisiteComparator());
    bidList.sort(new BidJSONComparator());
    completeList.sort(new CourseCompletedComparator());
    sectionStudentList.sort(new SectionStudentComparator());

    JsonArray courseArray = new JsonArray();

    for (Course course : courseList) {
        JsonObject courseObj = new JsonObject();
        courseObj.add("course", new JsonPrimitive(course.getCourseID()));
        courseObj.add("school", new JsonPrimitive(course.getSchool()));
        courseObj.add("title", new JsonPrimitive(course.getTitle()));
        courseObj.add("description", new JsonPrimitive(course.getDescription()));
        courseObj.add("exam date", new JsonPrimitive(course.getExamDate()));
        courseObj.add("exam start", new JsonPrimitive(course.getExamStart().replace(":", "")));
        courseObj.add("exam end", new JsonPrimitive(course.getExamEnd().replace(":", "")));
        courseArray.add(courseObj);
    }
    object.add("course", courseArray);

    JsonArray sectionArray = new JsonArray();

    for (Section section : sectionList) {
        JsonObject obj = new JsonObject();
        obj.add("course", new JsonPrimitive(section.getCourseID()));
        obj.add("section", new JsonPrimitive(section.getSectionID()));
        obj.add("day", new JsonPrimitive(getDay(section.getDay())));
        obj.add("start", new JsonPrimitive(section.getStart().replace(":", "")));
        obj.add("end", new JsonPrimitive(section.getEnd().replace(":", "")));
        obj.add("instructor", new JsonPrimitive(section.getInstructor()));
        obj.add("venue", new JsonPrimitive(section.getVenue()));
        obj.add("size", new JsonPrimitive(section.getSize()));
        sectionArray.add(obj);
    }
    object.add("section", sectionArray);

    JsonArray studentArray = new JsonArray();

    for (Student student : studentList) {
        Student stud = StudentDAO.getInstance().retrieve(student.getId());
        JsonObject obj = new JsonObject();
        obj.add("userid", new JsonPrimitive(student.getId()));
        obj.add("password", new JsonPrimitive(student.getPassword()));
        obj.add("name", new JsonPrimitive(student.getNameOfUser()));
        obj.add("school", new JsonPrimitive(student.getSchool()));
        obj.add("edollar", new JsonPrimitive(stud.geteDollar()));
        studentArray.add(obj);
    }
    object.add("student", studentArray);

    JsonArray prerequisiteArray = new JsonArray();

    for (Prerequisite pre : prerequisiteList) {
        JsonObject obj = new JsonObject();
        obj.add("course", new JsonPrimitive(pre.getCourseID()));
        obj.add("prerequisite", new JsonPrimitive(pre.getPrerequisiteID()));
        prerequisiteArray.add(obj);
    }
    object.add("prerequisite", prerequisiteArray);

    JsonArray bidArray = new JsonArray();

    for (Bid bid : bidList) {
        JsonObject obj = new JsonObject();
        obj.add("userid", new JsonPrimitive(bid.getUserID()));
        obj.add("amount", new JsonPrimitive(bid.getAmount()));
        obj.add("course", new JsonPrimitive(bid.getCourseID()));
        obj.add("section", new JsonPrimitive(bid.getSectionID()));
        bidArray.add(obj);
    }
    object.add("bid", bidArray);

    JsonArray completedArray = new JsonArray();

    for (CompletedCourse cc : completeList) {
        JsonObject obj = new JsonObject();
        obj.add("userid", new JsonPrimitive(cc.getUserID()));
        obj.add("course", new JsonPrimitive(cc.getCourseID()));
        completedArray.add(obj);
    }
    object.add("completed-course", completedArray);

    JsonArray sectionStudentArray = new JsonArray();

    for (SectionStudent stud : sectionStudentList) {
        JsonObject obj = new JsonObject();
        obj.add("userid", new JsonPrimitive(stud.getUserID()));
        obj.add("course", new JsonPrimitive(stud.getCourseID()));
        obj.add("section", new JsonPrimitive(stud.getSectionID()));
        obj.add("amount", new JsonPrimitive(stud.getAmount()));
        sectionStudentArray.add(obj);
    }
    object.add("section-student", sectionStudentArray);

    System.out.println(object);
    response.setContentType("application/json");
    response.getWriter().write(object.toString());
}

From source file:com.bios.controller.services.DumpUserService.java

/**
* Handles the HTTP <code>GET</code> method which takes in the userid of a
* user and a token of an administrator. After the userid of the student and
* token of the administrator is passed in, the method first verifies that
* the token is valid. If the token is invalid, a json object is created
* with the status "error" and an error message "invalid username/token".
* Subsequently, if the token is valid, the method checks the respective
* DAOs and retrieves the respective information of the user and places it
* in the json object. If an error occurs, such as a missing input, the json
* object will also reflect the error without displaying the user's
* information./*ww  w  . j  a v a2  s  .c  o m*/
 * @param request servlet requesty
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    ConnectionManager manager = new ConnectionManager();
    String requestObject = request.getParameter("r");
    String token = request.getParameter("token");
    ArrayList<String> errorList = new ArrayList<String>();

    JsonObject responseObject = new JsonObject();
    JsonArray allErrors = new JsonArray();

    if (requestObject == null) {
        errorList.add("missing r");
    } else if (requestObject.length() == 0) {
        errorList.add("blank r");
    }

    if (token == null) {
        errorList.add("missing token");
    } else if (token.length() == 0) {
        errorList.add("blank token");
    } else {
        try {
            String result = JWTUtility.verify(token, "abcdefgh12345678");
            if (!result.equals("admin")) {
                errorList.add("invalid token");
            }
        } catch (JWTException e) { // do we need this?
            // This means not an admin, or token expired
            errorList.add("invalid username/token");
        }
    }

    JsonElement jelementRequest = new JsonParser().parse(requestObject);
    JsonObject json = jelementRequest.getAsJsonObject();

    JsonElement userID = json.get("userid");

    if (userID == null) {
        errorList.add("missing userid");
    } else if (userID.getAsString().length() == 0) {
        errorList.add("blank userid");
    }

    if (errorList.size() > 0) {
        errorList.sort(new ErrorMsgComparator());
        for (String s : errorList) {
            allErrors.add(new JsonPrimitive(s));
        }
        responseObject.addProperty("status", "error");
        responseObject.add("message", allErrors);
        response.setContentType("application/json");
        response.getWriter().write(responseObject.toString());
        return;
    }

    Student s = StudentDAO.getInstance().retrieve(userID.getAsString());

    if (s == null) {
        allErrors.add(new JsonPrimitive("invalid userid"));
        responseObject.addProperty("status", "error");
        responseObject.add("message", allErrors);
        response.setContentType("application/json");
        response.getWriter().write(responseObject.toString());
        return;
    } else {
        responseObject.addProperty("status", "success");
        responseObject.addProperty("userid", s.getId());
        responseObject.addProperty("password", s.getPassword());
        responseObject.addProperty("name", s.getNameOfUser());
        responseObject.addProperty("school", s.getSchool());
        DecimalFormat df = new DecimalFormat("0.00");
        String result = df.format(s.geteDollar());
        double eDollar = Double.parseDouble(result);
        responseObject.addProperty("edollar", eDollar);
    }

    response.setContentType("application/json");
    response.getWriter().write(responseObject.toString());
    return;
}

From source file:com.bios.controller.services.GetLiveBiddingTableServlet.java

/**
 * Handles the HTTP <code>GET</code> method to determine whether currently placed
 * bids will be successful at the end of the round. A json object that contains the
 * live bidding data relating to the bid will be created.
 *
 * @param request servlet request/*ww w .  j a va2s  . c  om*/
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 *
 */
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    HttpSession session = request.getSession(true);
    String course_section_selected = request.getParameter("courseSectionID");
    int hyphenIndex = course_section_selected.indexOf("-");
    String courseSelected = course_section_selected.substring(0, hyphenIndex);
    String sectionSelected = course_section_selected.substring(hyphenIndex + 1);
    String userID = (String) session.getAttribute("username");

    // Section that user has selected
    Section section = SectionDAO.getInstance().findSection(courseSelected, sectionSelected);

    // How many students have already been enrolled in the section successfully
    ArrayList<SectionStudent> sectionStudentList = SectionStudentDAO.getInstance()
            .getSectionStudentListWithID(courseSelected, sectionSelected);

    // Size of the class minus the already enrolled number, which essentially means vacancy
    int vacancy = section.getSize() - sectionStudentList.size();

    // Minimum bid value that has to be shown to user, default is 10
    double minBidValue = 10;

    // This lists the bids that are still pending approval in round 2, and contains the bids
    // that user has selected, and these bids are sorted from highest to lowest
    ArrayList<Bid> round2Bids = BidDAO.getInstance().getPendingBidsWithID(courseSelected, sectionSelected);
    round2Bids.sort(new BidComparator());

    // This JsonObject is to be used as the reponse to the user
    JsonObject object = new JsonObject();

    // This is to re-compute the minimum bid value
    if (round2Bids.size() >= vacancy && vacancy != 0) { // should this be >=? wha if vacancy==0?
        minBidValue = round2Bids.get(vacancy - 1).getAmount() + 1;
    }

    // We will first add in the 2 properties that have already been calculated
    object.addProperty("vacancy", vacancy);
    object.addProperty("courseSectionID", course_section_selected);
    object.addProperty("round2BidsSize", round2Bids.size());
    if (round2Bids.size() == 0) {
        MinBidDAO.getInstance().drop();
        MinBidDAO.getInstance().refresh();
    }
    System.out.println("minbidvalue " + MinBidDAO.getInstance().getValue(course_section_selected));
    // This allows us to store the minimum bids, and also to persist the bids such that it stores the min bid amount
    if (MinBidDAO.getInstance().updateMinBid(course_section_selected, minBidValue)) {
        // Bid was updated successfully
        object.addProperty("minBidValue", minBidValue);
    } else {
        object.addProperty("minBidValue", MinBidDAO.getInstance().getValue(course_section_selected));
    }

    String prevStatus = "";

    JsonArray arrayOfBids = new JsonArray();
    for (int i = 0; i < round2Bids.size(); i++) {
        Bid bid = round2Bids.get(i);
        JsonObject innerObject = new JsonObject();

        // If there are vacancies still
        if (vacancy >= round2Bids.size()) {
            innerObject.addProperty("bidPrice", bid.getAmount());
            innerObject.addProperty("isSuccess", "Successful");
            //add temp success
        } else if (round2Bids.size() > vacancy) {
            // If this bid is still within the vacancy requirements
            if (i <= vacancy) {
                // Even if they are within the vacancy requirements, we need
                // to check to see if there are conflicting bids, this means
                // we need to check if the bid right after the vacancy requirements
                // has an equal amount
                Bid firstFailedBid = round2Bids.get(vacancy);

                if (bid.getAmount() == firstFailedBid.getAmount()) {
                    if (i == vacancy) {
                        if (prevStatus.equals("Unsuccessful")) {
                            innerObject.addProperty("bidPrice", bid.getAmount());
                            innerObject.addProperty("isSuccess", "Unsuccessful");
                            prevStatus = "Unsuccessful";
                        } else {
                            innerObject.addProperty("bidPrice", bid.getAmount());
                            innerObject.addProperty("isSuccess", "Unsuccessful. Bid too low.");
                            prevStatus = "Unsuccessful. Bid too low.";
                        }
                    } else {
                        innerObject.addProperty("bidPrice", bid.getAmount());
                        innerObject.addProperty("isSuccess", "Unsuccessful");
                        prevStatus = "Unsuccessful";
                    }
                } else {
                    innerObject.addProperty("bidPrice", bid.getAmount());
                    innerObject.addProperty("isSuccess", "Successful");
                    prevStatus = "Successful";
                }

            } else if (i > vacancy) { //what if vacancy+1's bid amout
                innerObject.addProperty("bidPrice", bid.getAmount());
                innerObject.addProperty("isSuccess", "Unsuccessful. Bid too low.");
                prevStatus = "Unsuccessful. Bid too low.";

            }
        }
        arrayOfBids.add(innerObject);
    }

    object.add("data", arrayOfBids);

    response.setContentType("application/json");

    response.getWriter().write(object.toString());
}

From source file:com.bios.controller.services.StartRoundService.java

/**
 * Handles the HTTP <code>GET</code> method which starts a bidding round. It checks that the user is a verified admin
 * and proceeds to start the round if the round is not yet started. Subsequently, it creates a json object with the status
 * "success" and stores the current bidding round. However, if round 2 has already ended, it creates a json object with the
 * status "error" and stores the error message "round 2 ended" in a json array. Additionally, if the user is not a verified admin with a valid
 * token, it creates a json object with the status "error" and stores the error message in a json array "invalid username/token".
 *
 * @param request servlet request/*from  w  ww  . j av  a  2  s  .co m*/
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    //      String token = request.getParameter("token");

    JsonObject object = new JsonObject();
    if (request.getParameter("token") == null) {
        JsonArray array = new JsonArray();
        object.addProperty("status", "error");
        array.add(new JsonPrimitive("missing token"));
        object.add("message", array);

    } else if (request.getParameter("token").length() == 0) {

        JsonArray array = new JsonArray();
        object.addProperty("status", "error");
        array.add(new JsonPrimitive("blank token"));
        object.add("message", array);

    } else {
        String token = request.getParameter("token");
        try {
            String result = JWTUtility.verify(token, "abcdefgh12345678");
            if (result.equals("admin")) {

                JsonArray array = new JsonArray();
                ConnectionManager manager = new ConnectionManager();
                if (manager.getBiddingRoundStatus().equals("started")) {
                    // Stop the round here
                    object.addProperty("status", "success");
                    object.add("round", new JsonPrimitive(manager.getBiddingRound()));
                } else if (manager.getBiddingRound() == 1) {
                    BiddingRoundServlet.incrementBiddingRound("true");
                    object.addProperty("status", "success");
                    object.add("round", new JsonPrimitive(manager.getBiddingRound()));

                } else {
                    object.addProperty("status", "error");
                    array.add(new JsonPrimitive("round 2 ended"));
                    object.add("message", array);
                }
            }
        } catch (JWTException e) {
            // This means not an admin, or token expired
            JsonArray array = new JsonArray();
            JsonPrimitive value = new JsonPrimitive("invalid token");
            array.add(value);
            object.addProperty("status", "error");
            object.add("message", array);
        }
    }

    System.out.println(object);

    response.setContentType(

            "application/json");
    response.getWriter()

            .write(object.toString());
}

From source file:com.bios.controller.services.StopRoundService.java

/**
 * Handles the HTTP <code>GET</code> method which stops a bidding round. It checks that the user is a verified admin
 * and proceeds to stop the round if the round is started. Subsequently, it creates a json object with the status
 * "success". However, if a round is already stopped, it creates a json object with the status "error" and stores the error
 * message "round already ended" in a json array. Additionally, if the user is not a verified admin with a valid token, it
 * creates a json object with the status "error" and stores the error message in a json array "invalid username/token".
 *
 * @param request servlet request/*from  w ww.  ja  v a2s .c  o  m*/
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    JsonObject object = new JsonObject();
    if (request.getParameter("token") == null) {
        JsonArray array = new JsonArray();
        object.addProperty("status", "error");
        array.add(new JsonPrimitive("missing token"));
        object.add("message", array);

    } else if (request.getParameter("token").length() == 0) {

        JsonArray array = new JsonArray();
        object.addProperty("status", "error");
        array.add(new JsonPrimitive("blank token"));
        object.add("message", array);

    } else {
        String token = request.getParameter("token");
        try {
            String result = JWTUtility.verify(token, "abcdefgh12345678");
            if (result.equals("admin")) {

                JsonArray array = new JsonArray();
                ConnectionManager manager = new ConnectionManager();
                if (manager.getBiddingRoundStatus().equals("started") && manager.getBiddingRound() == 1) {
                    // Stop the round here
                    object.addProperty("status", "success");

                    //                        RoundOneBidDAO.getInstance().drop();
                    //                        // add all round 1 pending bids into roundonebiddao
                    //                        ArrayList<Bid> allBids = BidDAO.getInstance().getPendingBids();
                    //                        for (Bid bid : allBids){
                    //                            RoundOneBidDAO.getInstance().addBid(bid);
                    //                        }

                    BiddingRoundServlet.incrementBiddingRound("true");
                } else if (manager.getBiddingRoundStatus().equals("started")
                        && manager.getBiddingRound() == 2) {
                    // Stop the round here
                    object.addProperty("status", "success");

                    //                        RoundTwoBidDAO.getInstance().drop();
                    //                        // add all round 1 pending bids into roundonebiddao
                    //                        ArrayList<Bid> allBids = BidDAO.getInstance().getPendingBids();
                    //                        for (Bid bid : allBids){
                    //                            RoundTwoBidDAO.getInstance().addBid(bid);
                    //                        }

                    BiddingRoundServlet.incrementBiddingRound("true");
                } else {
                    object.addProperty("status", "error");
                    array.add(new JsonPrimitive("round already ended"));
                    object.add("message", array);
                }
            }
        } catch (JWTException e) {
            // This means not an admin, or token expired
            JsonArray array = new JsonArray();
            JsonPrimitive value = new JsonPrimitive("invalid token");
            array.add(value);
            object.addProperty("status", "error");
            object.add("message", array);
        }
    }

    System.out.println(object);
    response.setContentType("application/json");
    response.getWriter().write(object.toString());
    return;
}

From source file:com.bios.controller.services.UpdateBidService.java

/**
* Handles the HTTP <code>GET</code> method which updates a bid. Firstly, the token
* is checked for its validity. If the token is valid, the method then goes into the
* respective DAOs to look for the bid. If the bid is valid and can be deleted, the
* bid is then deleted from the DAO and the database. Subsequentyly, a json object
* with the status "success" will be created. If any errors occur such as an
* invalid course or missing token is detected, a json object with the status "error"
* will be created with a json array of the erros that caused the failure to update.
* @param request servlet request/* w  w  w .j av  a  2s  .c om*/
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    ConnectionManager manager = new ConnectionManager();
    String requestObject = request.getParameter("r");
    String token = request.getParameter("token");
    ArrayList<String> errorList = new ArrayList<String>();

    JsonObject reponseObject = new JsonObject();
    JsonArray allErrors = new JsonArray();

    if (requestObject == null) {
        errorList.add("missing r");
    } else if (requestObject.length() == 0) {
        errorList.add("blank r");
    }

    if (token == null) {
        errorList.add("missing token");
    } else if (token.length() == 0) {
        errorList.add("blank token");
    } else {
        try {
            String result = JWTUtility.verify(token, "abcdefgh12345678");
            if (!result.equals("admin")) {
                errorList.add("invalid token");
            }
        } catch (JWTException e) { // do we need this?
            // This means not an admin, or token expired
            errorList.add("invalid username/token");
        }
    }

    JsonElement jelement = new JsonParser().parse(requestObject);
    JsonObject json = jelement.getAsJsonObject();
    Bid existingBid = null;

    JsonElement amt = json.get("amount");
    JsonElement crse = json.get("course");
    JsonElement sec = json.get("section");
    JsonElement user = json.get("userid");

    if (amt == null) {
        errorList.add("missing amount");
    } else if (amt.getAsString().length() == 0) {
        errorList.add("blank amount");
    }

    if (crse == null) {
        errorList.add("missing course");
    } else if (crse.getAsString().length() == 0) {
        errorList.add("blank course");
    }

    if (sec == null) {
        errorList.add("missing section");
    } else if (sec.getAsString().length() == 0) {
        errorList.add("blank section");
    }

    if (user == null) {
        errorList.add("missing userid");
    } else if (user.getAsString().length() == 0) {
        errorList.add("blank userid");
    }

    if (errorList.size() > 0) {
        errorList.sort(new ErrorMsgComparator());
        for (String s : errorList) {
            allErrors.add(new JsonPrimitive(s));
        }
        reponseObject.addProperty("status", "error");
        reponseObject.add("message", allErrors);
        response.setContentType("application/json");
        response.getWriter().write(reponseObject.toString());
        return;
    }

    // There may be type errors for the double here
    double amount = amt.getAsDouble();
    String courseID = crse.getAsString();
    String sectionID = sec.getAsString();
    String userID = user.getAsString();

    Course course = CourseDAO.getInstance().findCourse(courseID);
    Section section = SectionDAO.getInstance().findSection(courseID, sectionID);
    Student student = StudentDAO.retrieve(userID);

    int round = manager.getBiddingRound();
    BootstrapValidator bv = new BootstrapValidator();
    if (bv.parseBidAmount(amt.getAsString()) != null) {
        allErrors.add(new JsonPrimitive("invalid amount"));
    }

    if (course == null) {
        allErrors.add(new JsonPrimitive("invalid course"));
    }

    // only check if course code is valid
    if (course != null && section == null) {
        allErrors.add(new JsonPrimitive("invalid section"));
    }

    if (student == null) {
        allErrors.add(new JsonPrimitive("invalid userid"));
    }

    if (allErrors.size() > 0) {
        reponseObject.addProperty("status", "error");
        reponseObject.add("message", allErrors);
        response.setContentType("application/json");
        response.getWriter().write(reponseObject.toString());
        return;
    }

    if (manager.getBiddingRoundStatus().equals("started")) {
        if (round == 2) {
            double minBidAmt = MinBidDAO.getInstance().getValue(courseID + "-" + sectionID);
            System.out.println(courseID + "-" + sectionID);
            System.out.println("UPDATE amount: " + amount);
            System.out.println("UPDATE min bid: " + minBidAmt);
            if (amount < minBidAmt) {
                errorList.add("bid too low");
            }
        } else if (round == 1) {
            if (amount < 10) {
                errorList.add("bid too low");
            }
        }

        existingBid = BidDAO.getInstance().getStudentBidWithCourseID(userID, courseID);
        //no existing bid
        if (existingBid == null) {
            if (bv.parseEDollarEnough(userID, courseID, sectionID, amt.getAsString()) != null) {
                errorList.add("insufficient e$");
            }
        } else if (existingBid.getStatus().equals("pending")) {
            if (bv.parseEDollarEnoughExistingBid(userID, courseID, sectionID, amt.getAsString()) != null) {
                // Think too much alr, this line is not needed
                //                    errorList.add("insufficient e$");
            }
        } else if (existingBid.getStatus().equals("success")) {
            errorList.add("course enrolled");
        }

        if (bv.parseClassTimeTableClash(userID, courseID, sectionID) != null) {
            errorList.add("class timetable clash");
        }

        if (bv.parseExamTimeTableClash(userID, courseID, sectionID) != null) {
            errorList.add("exam timetable clash");
        }

        if (bv.parseIncompletePrerequisite(userID, courseID) != null) {
            errorList.add("incomplete prerequisites");
        }

        if (bv.parseAlreadyComplete(userID, courseID) != null) {
            errorList.add("course completed");
        }

        if (bv.parseSectionLimit(userID, courseID, sectionID) != null) {
            errorList.add("section limit reached");
        }

        if (bv.parseNotOwnSchoolCourse(userID, courseID) != null) {
            errorList.add("not own school course");
        }

        ArrayList<SectionStudent> sectionStudentList = SectionStudentDAO.getInstance()
                .getSectionStudentListWithID(courseID, sectionID);
        int vacancy = section.getSize() - sectionStudentList.size();
        if (vacancy <= 0) {
            errorList.add("no vacancy");
        }
    } else {
        errorList.add("round ended");
    }

    if (errorList.size() > 0) {
        Collections.sort(errorList);
        for (String s : errorList) {
            allErrors.add(new JsonPrimitive(s));
        }
        reponseObject.addProperty("status", "error");
        reponseObject.add("message", allErrors);
        response.setContentType("application/json");
        response.getWriter().write(reponseObject.toString());
        return;
    } else { //success state
        Bid newBid = new Bid(userID, amount, courseID, sectionID, "pending");
        if (existingBid != null) { //there is an existing bid
            MinBidDAO.getInstance().getMinBidList().remove(courseID + "-" + sectionID);
            MinBidDAO.getInstance().refresh();
            BidPlacementServlet.updateCurrentBid(userID, courseID, sectionID, amount, student);
        } else {
            student.seteDollar(student.geteDollar() - amount);
            manager.setEDollar(userID, student.geteDollar());
            BidDAO.getInstance().addBid(newBid);
            manager.addBid(newBid);
            //dk if this is needed
            if (round == 1) {
                RoundOneBidDAO.getInstance().addBid(newBid);
            } else if (round == 2) {
                RoundTwoBidDAO.getInstance().addBid(newBid);
            }
        }
        MinBidDAO.getInstance().refresh();
        reponseObject.addProperty("status", "success");
    }

    response.setContentType("application/json");
    response.getWriter().write(reponseObject.toString());
    return;
}

From source file:com.bitbreeds.webrtc.example.AnswerToJSON.java

License:Open Source License

public void process(Exchange exchange) throws Exception {
    Answer ex = (Answer) exchange.getIn().getBody();

    JsonObject obj = new JsonObject();
    obj.addProperty("type", "answer");
    obj.addProperty("sdp", ex.getSdp().toString());

    exchange.getIn().setBody(obj.toString());
}