ec3a6524ca5074c26e5b0addc2310071259cc93b hiram Sun Apr 28 09:42:45 2019 -0700 eliminating the db= argument everywhere, only need genome= refs #18869 diff --git src/hg/hubApi/getData.c src/hg/hubApi/getData.c index 9dc7a96..fd165ca 100644 --- src/hg/hubApi/getData.c +++ src/hg/hubApi/getData.c @@ -608,103 +608,103 @@ if (jsonOutputArrays || debug) wigColumnTypes(jw); jsonWriteObjectStart(jw, track); wigData(jw, bbi, chrom, uStart, uEnd); jsonWriteObjectEnd(jw); } bbiFileClose(&bbi); apiFinishOutput(0, NULL, jw); } /* static void getHubTrackData(char *hubUrl) */ static void getTrackData() /* return data from a track, optionally just one chrom data, * optionally just one section of that chrom data */ { -char *db = cgiOptionalString("db"); +char *db = cgiOptionalString("genome"); char *chrom = cgiOptionalString("chrom"); char *start = cgiOptionalString("start"); char *end = cgiOptionalString("end"); /* 'track' name in trackDb often refers to a SQL 'table' */ char *track = cgiOptionalString("track"); char *sqlTable = cloneString(track); /* might be something else */ /* depends upon 'table' setting in track db, or split table business */ unsigned chromSize = 0; /* maybe set later */ unsigned uStart = 0; unsigned uEnd = chromSize; /* maybe set later */ if ( ! (isEmpty(start) || isEmpty(end)) ) { uStart = sqlUnsigned(start); uEnd = sqlUnsigned(end); if (uEnd < uStart) apiErrAbort(err400, err400Msg, "given start coordinate %u is greater than given end coordinate", uStart, uEnd); } if (isEmpty(db)) - apiErrAbort(err400, err400Msg, "missing URL variable db= name for endpoint '/getData/track"); + apiErrAbort(err400, err400Msg, "missing URL variable genome= name for endpoint '/getData/track"); if (isEmpty(track)) apiErrAbort(err400, err400Msg, "missing URL variable track= name for endpoint '/getData/track"); struct trackDb *thisTrack = hTrackDbForTrackAndAncestors(db, track); if (NULL == thisTrack) apiErrAbort(err400, err400Msg, "can not find track=%s name for endpoint '/getData/track", track); /* might be a big* track with no table */ char *bigDataUrl = trackDbSetting(thisTrack, "bigDataUrl"); boolean tableTrack = TRUE; /* might have a specific table defined instead of the track name */ char *tableName = trackDbSetting(thisTrack, "table"); if (isNotEmpty(tableName)) { freeMem(sqlTable); sqlTable = cloneString(tableName); } /* database existence has already been checked before now, might * have disappeared in the mean time */ struct sqlConnection *conn = hAllocConnMaybe(db); if (NULL == conn) - apiErrAbort(err400, err400Msg, "can not find database 'db=%s' for endpoint '/getData/track", db); + apiErrAbort(err400, err400Msg, "can not find genome 'genome=%s' for endpoint '/getData/track", db); struct hTableInfo *hti = hFindTableInfoWithConn(conn, NULL, sqlTable); char *splitSqlTable = NULL; if (hti && hti->isSplit) { if (isNotEmpty(chrom)) { char fullTableName[256]; safef(fullTableName, sizeof(fullTableName), "%s_%s", chrom, hti->rootName); splitSqlTable = cloneString(fullTableName); } else { char *defaultChrom = hDefaultChrom(db); char fullTableName[256]; safef(fullTableName, sizeof(fullTableName), "%s_%s", defaultChrom, hti->rootName); splitSqlTable = cloneString(fullTableName); } } if (! hTableOrSplitExists(db, sqlTable)) { if (! bigDataUrl) - apiErrAbort(err400, err400Msg, "can not find specified 'track=%s' for endpoint: /getData/track?db=%s;track=%s", track, db, track); + apiErrAbort(err400, err400Msg, "can not find specified 'track=%s' for endpoint: /getData/track?genome=%s;track=%s", track, db, track); else tableTrack = FALSE; } struct jsonWrite *jw = apiStartOutput(); jsonWriteString(jw, "db", db); if (tableTrack) { char *dataTime = NULL; if (hti && hti->isSplit) dataTime = sqlTableUpdate(conn, splitSqlTable); else dataTime = sqlTableUpdate(conn, sqlTable); time_t dataTimeStamp = sqlDateToUnixTime(dataTime); replaceChar(dataTime, ' ', 'T'); /* ISO 8601 */ @@ -792,91 +792,91 @@ wigColumnTypes(jw); jsonWriteObjectStart(jw, track); wigData(jw, bbi, chrom, uStart, uEnd); jsonWriteObjectEnd(jw); bbiFileClose(&bbi); } else tableDataOutput(db, thisTrack, conn, jw, track, chrom, uStart, uEnd); apiFinishOutput(0, NULL, jw); hFreeConn(&conn); } static void getSequenceData(char *db, char *hubUrl) -/* return DNA sequence, given at least a db=name and chrom=chr, +/* return DNA sequence, given at least a genome=name and chrom=chr, optionally start and end, might be a track hub for UCSC database */ { char *chrom = cgiOptionalString("chrom"); char *start = cgiOptionalString("start"); char *end = cgiOptionalString("end"); long timeStart = clock1000(); if (isEmpty(chrom)) - apiErrAbort(err400, err400Msg, "missing URL chrom= for endpoint '/getData/sequence?db=%s'", db); + apiErrAbort(err400, err400Msg, "missing URL chrom= for endpoint '/getData/sequence?genome=%s'", db); if (chromSeqFileExists(db, chrom)) { struct chromInfo *ci = hGetChromInfo(db, chrom); unsigned chromSize = ci->size; struct dnaSeq *seq = NULL; if (isEmpty(start) || isEmpty(end)) if (chromSize > MAX_DNA_LENGTH) - apiErrAbort(err400, err400Msg, "DNA sequence request %d too large, limit: %u for endpoint '/getData/sequence?db=%s;chrom=%s'", chromSize, MAX_DNA_LENGTH, db, chrom); + apiErrAbort(err400, err400Msg, "DNA sequence request %d too large, limit: %u for endpoint '/getData/sequence?genome=%s;chrom=%s'", chromSize, MAX_DNA_LENGTH, db, chrom); else seq = hChromSeqMixed(db, chrom, 0, 0); else if ( (sqlSigned(end) - sqlSigned(start)) > MAX_DNA_LENGTH) - apiErrAbort(err400, err400Msg, "DNA sequence request %d too large, limit: %u for endpoint '/getData/sequence?db=%s;chrom=%s;start=%s;end=%s'", sqlSigned(end) - sqlSigned(start), MAX_DNA_LENGTH, db, chrom, start, end); + apiErrAbort(err400, err400Msg, "DNA sequence request %d too large, limit: %u for endpoint '/getData/sequence?genome=%s;chrom=%s;start=%s;end=%s'", sqlSigned(end) - sqlSigned(start), MAX_DNA_LENGTH, db, chrom, start, end); else seq = hChromSeqMixed(db, chrom, sqlSigned(start), sqlSigned(end)); long endTime = clock1000(); long long et = endTime - timeStart; if (NULL == seq) - apiErrAbort(err400, err400Msg, "can not find sequence for chrom=%s for endpoint '/getData/sequence?db=%s;chrom=%s'", chrom, db, chrom); + apiErrAbort(err400, err400Msg, "can not find sequence for chrom=%s for endpoint '/getData/sequence?genome=%s;chrom=%s'", chrom, db, chrom); struct jsonWrite *jw = apiStartOutput(); if (isNotEmpty(hubUrl)) jsonWriteString(jw, "hubUrl", hubUrl); if (measureTiming) jsonWriteNumber(jw, "dnaFetchTimeMs", et); 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)); } timeStart = clock1000(); jsonWriteString(jw, "dna", seq->dna); endTime = clock1000(); et = endTime - timeStart; if (measureTiming) jsonWriteNumber(jw, "dnaJsonWriteTimeMs", et); apiFinishOutput(0, NULL, jw); freeDnaSeq(&seq); } else - apiErrAbort(err400, err400Msg, "can not find specified chrom=%s in sequence for endpoint '/getData/sequence?db=%s;chrom=%s", chrom, db, chrom); + apiErrAbort(err400, err400Msg, "can not find specified chrom=%s in sequence for endpoint '/getData/sequence?genome=%s;chrom=%s", chrom, db, chrom); } /* static void getSequenceData(char *db, char *hubUrl) */ static void getHubSequenceData(char *hubUrl) /* return DNA sequence, given at least a genome=name and chrom=chr, optionally start and end */ { char *genome = cgiOptionalString("genome"); char *chrom = cgiOptionalString("chrom"); char *start = cgiOptionalString("start"); char *end = cgiOptionalString("end"); if (isEmpty(genome)) apiErrAbort(err400, err400Msg, "missing genome= for endpoint '/getData/sequence' given hubUrl='%s'", hubUrl); if (isEmpty(chrom)) apiErrAbort(err400, err400Msg, "missing chrom= for endpoint '/getData/sequence?genome=%s' given hubUrl='%s'", genome, hubUrl); @@ -942,25 +942,25 @@ { char *hubUrl = cgiOptionalString("hubUrl"); if (sameWord("track", words[1])) { if (isNotEmpty(hubUrl)) getHubTrackData(hubUrl); else getTrackData(); } else if (sameWord("sequence", words[1])) { if (isNotEmpty(hubUrl)) getHubSequenceData(hubUrl); else { - char *db = cgiOptionalString("db"); + char *db = cgiOptionalString("genome"); if (isEmpty(db)) - apiErrAbort(err400, err400Msg, "missing URL db= name for endpoint '/getData/sequence"); + apiErrAbort(err400, err400Msg, "missing URL genome= name for endpoint '/getData/sequence"); /* existence of db has already been proven before getting here */ getSequenceData(db, NULL); } } else apiErrAbort(err400, err400Msg, "do not recognize endpoint function: '/%s/%s'", words[0], words[1]); }