0042a4fea15ed7f06067f0b3a17761f1b37257da hiram Fri Apr 26 22:53:23 2019 -0700 correctly exit when specified genome is not found in hub for list/chromosomes function refs #18869 diff --git src/hg/hubApi/getData.c src/hg/hubApi/getData.c index 94e545b..9dc7a96 100644 --- src/hg/hubApi/getData.c +++ src/hg/hubApi/getData.c @@ -517,38 +517,32 @@ * optionally just one section of that chrom data */ { char *genome = cgiOptionalString("genome"); char *track = cgiOptionalString("track"); char *chrom = cgiOptionalString("chrom"); char *start = cgiOptionalString("start"); char *end = cgiOptionalString("end"); if (isEmpty(genome)) apiErrAbort(err400, err400Msg, "missing genome= for endpoint '/getData/track' given hubUrl='%s'", hubUrl); if (isEmpty(track)) apiErrAbort(err400, err400Msg, "missing track= for endpoint '/getData/track' given hubUrl='%s'", hubUrl); struct trackHub *hub = errCatchTrackHubOpen(hubUrl); -struct trackHubGenome *hubGenome = NULL; -for (hubGenome = hub->genomeList; hubGenome; hubGenome = hubGenome->next) - { - if (sameString(genome, hubGenome->name)) - break; - } -if (NULL == hubGenome) - apiErrAbort(err400, err400Msg, "failed to find specified genome=%s for endpoint '/getData/track' given hubUrl '%s'", genome, hubUrl); +struct trackHubGenome *hubGenome = findHubGenome(hub, genome, "/getData/track", + hubUrl); struct trackDb *tdb = obtainTdb(hubGenome, NULL); if (NULL == tdb) apiErrAbort(err400, err400Msg, "failed to find a track hub definition in genome=%s for endpoint '/getData/track' given hubUrl='%s'", genome, hubUrl); struct trackDb *thisTrack = findTrackDb(track, tdb); if (NULL == thisTrack) apiErrAbort(err400, err400Msg, "failed to find specified track=%s in genome=%s for endpoint '/getData/track' given hubUrl='%s'", track, genome, hubUrl); char *bigDataUrl = trackDbSetting(thisTrack, "bigDataUrl"); struct bbiFile *bbi = bigFileOpen(thisTrack->type, bigDataUrl); if (NULL == bbi) apiErrAbort(err400, err400Msg, "track type %s management not implemented yet TBD track=%s in genome=%s for endpoint '/getData/track' given hubUrl='%s'", track, genome, hubUrl);