Esempio n. 1
0
  // Generates the get request for items that the config 'page' section
  // requests to be shown given a certain param
  public String genGetByPageParam(
      PageObj pageObj, Section section, HashMap<String, DataObj> dataObjsMap) {
    StringBuilder s = new StringBuilder(1024);
    List<String> showObjs = section.getShow();
    List<String> pageParams = section.getParams();
    StringBuilder paramQuery = new StringBuilder(256);

    // create the end of the url
    for (String param : pageParams) {
      paramQuery.append("/find/" + param + "/:" + param);
    }

    for (String tableName : showObjs) {
      DataObj dataObj = dataObjsMap.get(tableName);
      String whereParams = parsePageParam(dataObj, pageParams);
      String reqParams = makeReqParams(dataObj, pageParams);
      s.append("app.get('/" + tableName + paramQuery.toString() + "', function(req,res) {\n");

      // know when to return response
      s.append(returnTab(1) + "totalCount = 0;\n");
      s.append(returnTab(1) + "count = 0;\n");

      // generates the BASIC select * from table where id = ?
      s.append(
          returnTab(1)
              + "var query = \""
              + selectProperties(dataObj)
              + " from "
              + tableName
              + " as "
              + tableName
              + " where "
              + whereParams
              + "\";\n");
      s.append(returnTab(1) + "con.query(query," + reqParams + ", function(err, rows0,fields) {\n");
      s.append(returnTab(2) + "if(err) throw err;\n");

      // once the BASIC info is returned, each foreign key needs to be
      // expanded. this is done recursively with evaluateFK()

      tabDepth = 0;
      queryNo = 0;
      queryNoNext = 1;
      String fks = evaluateFK(dataObj, 0, "", "", "row.ID");
      s.append(fks);
      if (fks.length() > 0) {
        s.append(returnTab(tabDepth + 2) + "count += 1;\n");
      }
      s.append(returnTab(tabDepth + 2) + "if (count == totalCount) {\n");
      s.append(returnTab(tabDepth + 3) + "res.jsonp(rows0);\n");
      s.append(returnTab(tabDepth + 2) + "}\n");

      // adds all of the closing brackets
      while (tabDepth + 2 > 0) {
        s.append(returnTab(1 + tabDepth) + "});\n");
        if (tabDepth == 1) {
          s.append(returnTab(1 + tabDepth) + "if (rows0.length == 0) {\n");
          s.append(returnTab(2 + tabDepth) + "res.jsonp([])\n");
          s.append(returnTab(1 + tabDepth) + "}\n");
        }
        tabDepth -= 1;
      }

      s.append("\n");
    }
    return s.toString();
  }