774479fda06428280150d609bdf4052f5f35d571 hiram Wed Feb 13 14:17:16 2019 -0800 list functions moved to list.c refs #18869 diff --git src/hg/hubApi/getData.c src/hg/hubApi/getData.c index ead339d..7dc088d 100644 --- src/hg/hubApi/getData.c +++ src/hg/hubApi/getData.c @@ -1,55 +1,64 @@ /* manage endpoint /getData/ functions */ #include "dataApi.h" void getTrackData() /* return data from a track */ { } void getSequenceData() /* return DNA sequence, given at least a db=name and chrom=chr, optionally start and end */ { char *db = cgiOptionalString("db"); char *chrom = cgiOptionalString("chrom"); char *start = cgiOptionalString("start"); char *end = cgiOptionalString("end"); if (isEmpty(db)) jsonErrAbort("missing URL db=<ucscDb> name for endpoint '/getData/sequence"); if (isEmpty(chrom)) jsonErrAbort("missing URL chrom=<name> for endpoint '/getData/sequence?db=%s", db); if (chromSeqFileExists(db, chrom)) { struct chromInfo *ci = hGetChromInfo(db, chrom); struct dnaSeq *seq = NULL; if (isEmpty(start) || isEmpty(end)) seq = hChromSeqMixed(db, chrom, 0, 0); else seq = hChromSeqMixed(db, chrom, sqlSigned(start), sqlSigned(end)); if (NULL == seq) jsonErrAbort("can not find sequence for chrom=%s for endpoint '/getData/sequence?db=%s&chrom=%s", chrom, db, chrom); struct jsonWrite *jw = jsonStartOutput(); jsonWriteString(jw, "db", db); jsonWriteString(jw, "chrom", chrom); if (isEmpty(start) || isEmpty(end)) { jsonWriteNumber(jw, "start", (long long)0); jsonWriteNumber(jw, "end", (long long)ci->size); } else { jsonWriteNumber(jw, "start", (long long)sqlSigned(start)); jsonWriteNumber(jw, "end", (long long)sqlSigned(end)); } jsonWriteString(jw, "dna", seq->dna); jsonWriteObjectEnd(jw); fputs(jw->dy->string,stdout); freeDnaSeq(&seq); } else jsonErrAbort("can not find specified chrom=%s in sequence for endpoint '/getData/sequence?db=%s&chrom=%s", chrom, db, chrom); } - +void apiGetData(char *words[MAX_PATH_INFO]) +/* 'getData' function, words[1] is the subCommand */ +{ +if (sameWord("track", words[1])) + getTrackData(); +else if (sameWord("sequence", words[1])) + getSequenceData(); +else + jsonErrAbort("do not recognize endpoint function: '/%s/%s'", words[0], words[1]); +}