ba87d8471c9c78f15412ccad2aaba9b46d1af38e
hiram
  Tue Jul 2 16:14:47 2024 -0700
eliminte the dependency upon specific genArk genome names, use the genark table for questions about existence, refs #32596

diff --git src/hg/hubApi/list.c src/hg/hubApi/list.c
index d2e52c2..8fd76aa 100644
--- src/hg/hubApi/list.c
+++ src/hg/hubApi/list.c
@@ -1100,34 +1100,33 @@
 	    }
 	jsonWriteObjectEnd(jw);
 	apiFinishOutput(0, NULL, jw);
 	}
     }
 else if (sameWord("tracks", words[1]))
     {
     char *extraArgs = verifyLegalArgs(argListTracks);
     if (extraArgs)
 	apiErrAbort(err400, err400Msg, "extraneous arguments found for function /list/tracks '%s'", extraArgs);
 
     char *hubUrl = cgiOptionalString("hubUrl");
     char *genome = cgiOptionalString("genome");
     char *db = cgiOptionalString("genome");
     /* allow a GCx genome specified without hubUrl for GenArk genomes */
-    if (isEmpty(hubUrl) && isNotEmpty(genome) && isGenArk(genome))
-	{
-	hubUrl = genArkHubTxt(genome);
-	}
+    if (isEmpty(hubUrl) && isNotEmpty(genome))
+	hubUrl = genarkUrl(genome);
+
     if (isEmpty(hubUrl) && isNotEmpty(db))
 	{
 	struct sqlConnection *conn = hAllocConnMaybe(db);
         if (NULL == conn)
 	    apiErrAbort(err400, err400Msg, "can not find 'genome=%s' for endpoint '/list/tracks", db);
 	else
 	    hFreeConn(&conn);
 	}
     if (isEmpty(hubUrl) && isEmpty(db))
       apiErrAbort(err400, err400Msg, "missing hubUrl or genome name for endpoint /list/tracks");
     if (isEmpty(hubUrl))	// missing hubUrl implies UCSC database
 	{
         trackDbJsonOutput(db, stdout);	// only need db for this function
 	return;
 	}
@@ -1151,34 +1150,33 @@
 	    recursiveTrackList(jw, el, db);
 	    }
     jsonWriteObjectEnd(jw);
     apiFinishOutput(0, NULL, jw);
     }
 else if (sameWord("chromosomes", words[1]))
     {
     char *extraArgs = verifyLegalArgs(argListChromosomes);
     if (extraArgs)
 	apiErrAbort(err400, err400Msg, "extraneous arguments found for function /list/chromosomes '%s'", extraArgs);
 
     char *hubUrl = cgiOptionalString("hubUrl");
     char *genome = cgiOptionalString("genome");
     char *db = cgiOptionalString("genome");
     /* allow a GCx genome specified without hubUrl for GenArk genomes */
-    if (isEmpty(hubUrl) && isNotEmpty(genome) && isGenArk(genome))
-	{
-	hubUrl = genArkHubTxt(genome);
-	}
+    if (isEmpty(hubUrl) && isNotEmpty(genome))
+	hubUrl = genarkUrl(genome);
+
     if (isEmpty(hubUrl) && isNotEmpty(db))
 	{
 	struct sqlConnection *conn = hAllocConnMaybe(db);
         if (NULL == conn)
 	    apiErrAbort(err400, err400Msg, "can not find 'genome=%s' for endpoint '/list/chromosomes", db);
 	else
 	    hFreeConn(&conn);
 	}
     if (isEmpty(hubUrl) && isEmpty(db))
         apiErrAbort(err400, err400Msg, "must supply hubUrl or genome name for endpoint '/list/chromosomes", hubUrl, db);
 
     if (isEmpty(hubUrl))	// missing hubUrl implies UCSC database
 	{
         chromInfoJsonOutput(stdout, db);
 	return;
@@ -1188,34 +1186,32 @@
         hubChromInfoJsonOutput(stdout, hubUrl, genome);
 	return;
 	}
     }
 else if (sameWord("schema", words[1]))
     {
     char *extraArgs = verifyLegalArgs(argListSchema);
     if (extraArgs)
 	apiErrAbort(err400, err400Msg, "extraneous arguments found for function /list/schema '%s'", extraArgs);
 
     char *hubUrl = cgiOptionalString("hubUrl");
     char *genome = cgiOptionalString("genome");
     char *db = cgiOptionalString("genome");
     char *track = cgiOptionalString("track");
     /* allow a GCx genome specified without hubUrl for GenArk genomes */
-    if (isEmpty(hubUrl) && isNotEmpty(genome) && isGenArk(genome))
-	{
-	hubUrl = genArkHubTxt(genome);
-	}
+    if (isEmpty(hubUrl) && isNotEmpty(genome))
+	hubUrl = genarkUrl(genome);
 
     if (isEmpty(track))
 	apiErrAbort(err400, err400Msg, "missing track=<name> for endpoint '/list/schema'");
 
     if (isEmpty(hubUrl) && isNotEmpty(db))
 	{
 	struct sqlConnection *conn = hAllocConnMaybe(db);
         if (NULL == conn)
 	    apiErrAbort(err400, err400Msg, "can not find 'genome=%s' for endpoint '/list/schema", db);
 	else
 	    hFreeConn(&conn);
 	}
 
     if (isEmpty(hubUrl) && isEmpty(db))
         apiErrAbort(err400, err400Msg, "must supply hubUrl or genome name for endpoint '/list/schema", hubUrl, db);