Example #1
0
  @Override
  protected void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    RegisteredUser currentUser = getCurrentUser(request.getSession());
    if (currentUser == null) {
      throw new SecurityException("Not logged in");
    }

    String query = request.getParameter("query");
    response.setContentType(Constants.CONTENT_TYPE);

    DB db = new DB(DBFunctions.getConnection());
    Gson JSON = new Gson();
    switch (query) {
      case "getAllDaycareCenters":
        print(response, JSON.toJson(db.select(DayCareCenter.class, new OrderBy(daycare_name))));
        break;
      case "getGrownup":
        print(
            response,
            JSON.toJson(
                db.selectOnlyOne(
                        GrownUp.class,
                        new Where(
                            grownup_id, " = ", parseInt(request.getParameter(grownup_id.name()))))
                    .get()));
        break;
      case "childrenInDaycare":
        print(
            response,
            JSON.toJson(
                db.select(
                    Child.class,
                    new OrderBy(nickname),
                    new Where(
                        child_daycare_id,
                        " = ",
                        parseInt(request.getParameter(daycare_id.name()))))));
        break;
      case "childrenForGrownup":
        String grownUpId = request.getParameter(grownup_id.name());
        Long id =
            (isNotBlank(grownUpId) && isNumeric(grownUpId))
                ? parseInt(grownUpId)
                : currentUser.getGrownUpId();
        print(
            response,
            JSON.toJson(
                db.select(
                    Child.class, new OrderBy(nickname), new Where(gc_grownup_id, " = ", id))));
        break;
      case "getChild":
        print(
            response,
            JSON.toJson(
                db.selectOnlyOne(
                        Child.class,
                        new Where(child_id, " = ", parseInt(request.getParameter(child_id.name()))))
                    .orElse(null)));
        break;
      case "getLoggedIn":
        GrownUp grownup =
            db.selectOnlyOne(GrownUp.class, new Where(grownup_id, "=", currentUser.getGrownUpId()))
                .get();
        grownup.addClubs(
            db.select(
                DatabaseColumns.club_name,
                String.class,
                new Where(grg_grownup_id, "=", currentUser.getGrownUpId())));
        print(response, JSON.toJson(grownup));
        break;
      case "getAllGroups":
        print(
            response,
            JSON.toJson(
                db.select(
                    Club.class,
                    new OrderBy(club_name),
                    new Where(
                        club_daycare_id,
                        " = ",
                        parseInt(request.getParameter(daycare_id.name()))))));
        break;
      case "getGroupsForGrownup":
        print(
            response,
            JSON.toJson(
                db.select(
                    Club.class,
                    new OrderBy(club_name),
                    new Where(
                        grg_grownup_id,
                        " = ",
                        parseInt(request.getParameter(grownup_id.name()))))));
      default:
        break;
    }
    db.rollback();
  }