0a0bd78f9142b1dd5086d3675c5afc07c9b155a2 larrym Thu Mar 22 13:36:41 2012 -0700 remove experimental and unused trackList cmd and associated code diff --git src/hg/hgApi/hgApi.c src/hg/hgApi/hgApi.c index 4a37237..8c3c9b6 100644 --- src/hg/hgApi/hgApi.c +++ src/hg/hgApi/hgApi.c @@ -1,70 +1,42 @@ /* hgApi - provide a JSON based API to the browser. */ #include "common.h" #include "hdb.h" #include "mdb.h" #include "cheapcgi.h" #include "hPrint.h" #include "dystring.h" #include "hui.h" #include "search.h" #include "encode/encodeExp.h" #include "cv.h" - static void fail(char *msg) { puts("Status: 400\n\n"); puts(msg); exit(-1); } void makeIndent(char *buf, int bufLen, int indent) { indent = min(indent, bufLen - 2); memset(buf, '\t', indent); buf[indent] = 0; } -static void trackJson(struct dyString *json, struct trackDb *tdb, int *count, int indent) -{ -char tabs[100]; -makeIndent(tabs, sizeof(tabs), indent); -if((*count)++) - dyStringPrintf(json, ",\n"); -dyStringPrintf(json, "%s{\n", tabs); -makeIndent(tabs, sizeof(tabs), indent + 1); -dyStringPrintf(json, "%s\"track\": \"%s\",\n%s\"shortLabel\": \"%s\",\n%s\"longLabel\": \"%s\",\n%s\"group\": \"%s\"", - tabs, tdb->track, - tabs, tdb->shortLabel, tabs, tdb->longLabel, - tabs, tdb->grp); -if(tdbIsComposite(tdb) && tdb->subtracks != NULL) - { - struct trackDb *ptr; - dyStringPrintf(json, ",\n%s\"subtracks\":\n%s[\n", tabs, tabs); - int count = 0; - for (ptr = tdb->subtracks; ptr != NULL; ptr = ptr->next) - { - trackJson(json, ptr, &count, indent + 2); - } - dyStringPrintf(json, "\n%s]", tabs); - } -makeIndent(tabs, sizeof(tabs), indent); -dyStringPrintf(json, "\n%s}", tabs); -} - static void encodeExpJson(struct dyString *json, struct encodeExp *el) /* Print out encodeExp in JSON format. Manually converted from autoSql which outputs * to file pointer. */ // TODO: move to lib/encode/encodeExp.c, extend autoSql to support, and use json*() functions { dyStringPrintf(json, "{"); dyStringPrintf(json, "\"ix\":%u", el->ix); dyStringPrintf(json, ", "); dyStringPrintf(json, "\"organism\":\"%s\"", el->organism); dyStringPrintf(json, ", "); dyStringPrintf(json, "\"lab\":\"%s\"", el->lab); dyStringPrintf(json, ", "); dyStringPrintf(json, "\"dataType\":\"%s\"", el->dataType); dyStringPrintf(json, ", "); @@ -139,62 +111,47 @@ dyStringPrintf(json, "\"targetId\":\"%s\"", (char *)hashOptionalVal(termHash, "targetId", "unknown")); dyStringPrintf(json, ","); dyStringPrintf(json, "\"targetUrl\":\"%s\"", (char *)hashOptionalVal(termHash, "targetUrl", "unknown")); dyStringPrintf(json, ","); dyStringPrintf(json, "\"orderUrl\":\"%s\"", (char *)hashOptionalVal(termHash, "orderUrl", "unknown")); // TODO: add validation file(s) ? } dyStringPrintf(json, "}\n"); } int main(int argc, char *argv[]) { struct dyString *output = newDyString(10000); +// add cgiSpoof char *database = cgiOptionalString("db"); char *cmd = cgiOptionalString("cmd"); char *jsonp = cgiOptionalString("jsonp"); if(database) { database = sqlEscapeString(database); if(!hDbExists(database)) fail("Invalid database"); } else fail("Missing 'db' parameter"); if(!cmd) fail("Missing 'cmd' parameter"); -if(!strcmp(cmd, "trackList")) - { - // Return trackList for this assembly - // e.g. http://genome.ucsc.edu/hgApi?db=hg18&cmd=trackList - - struct trackDb *tdb, *tdbList = NULL; - tdbList = hTrackDb(database); - dyStringPrintf(output, "[\n"); - int count = 0; - for (tdb = tdbList; tdb != NULL; tdb = tdb->next) - { - trackJson(output, tdb, &count, 1); - count++; - } - dyStringAppend(output, "\n]\n"); - } -else if(!strcmp(cmd, "defaultPos")) +if(!strcmp(cmd, "defaultPos")) { dyStringPrintf(output, "{\"pos\": \"%s\"}", hDefaultPos(database)); } else if(!strcmp(cmd, "metaDb")) { // Return list of values for given metaDb var // e.g. http://genome.ucsc.edu/hgApi?db=hg18&cmd=metaDb&var=cell struct sqlConnection *conn = hAllocConn(database); boolean metaDbExists = sqlTableExists(conn, "metaDb"); if(metaDbExists) { char *var = cgiOptionalString("var"); if(var) var = sqlEscapeString(var);