28bdadf237c69b5f8bd7ff2128210c82dddbd653 hiram Mon Aug 26 08:25:37 2024 -0700 coordinate the findGenome arguments with the assemblySearch javaScript refs #32596 diff --git src/hg/hubApi/findGenome.c src/hg/hubApi/findGenome.c index 3716fe8..d1251b6 100644 --- src/hg/hubApi/findGenome.c +++ src/hg/hubApi/findGenome.c @@ -182,31 +182,31 @@ return itemCount; } /* static long long oneWordSearch(struct sqlConnection *conn, char *searchWord, struct jsonWrite *jw, boolean *prefixSearch) */ static long elapsedTime(struct jsonWrite *jw) { long nowTime = clock1000(); long elapsedTimeMs = nowTime - enteredMainTime; jsonWriteNumber(jw, "elapsedTimeMs", elapsedTimeMs); return elapsedTimeMs; } void apiFindGenome(char *pathString[MAX_PATH_INFO]) /* 'findGenome' function */ { -char *searchString = cgiOptionalString(argGenomeSearchTerm); +char *searchString = cgiOptionalString(argQ); char *inputSearchString = cloneString(searchString); char *endResultSearchString = NULL; boolean prefixSearch = FALSE; char *extraArgs = verifyLegalArgs(argFindGenome); genarkTable = genarkTableName(); asmListTable = assemblyListTableName(); if (extraArgs) apiErrAbort(err400, err400Msg, "extraneous arguments found for function /findGenome'%s'", extraArgs); boolean asmListExists = hTableExists("hgcentraltest", asmListTable); if (!asmListExists) apiErrAbort(err400, err400Msg, "table hgcentraltest.assemblyList does not exist for /findGenome"); boolean asmSummaryExists = hTableExists("hgcentraltest", "asmSummary"); @@ -252,59 +252,59 @@ else apiErrAbort(err400, err400Msg, "unrecognized '%s=%s' argument, can only be =1 or =0", argStatsOnly, statsOnlyString); } struct sqlConnection *conn = hConnectCentral(); if (!sqlTableExists(conn, asmListTable)) apiErrAbort(err500, err500Msg, "missing central.assemblyList table in function /findGenome'%s'", extraArgs); int wordCount = 0; /* verify number of words in search string is legal */ wordCount = chopByWhite(searchString, NULL, 0); if (wordCount < 1) -apiErrAbort(err400, err400Msg, "search term '%s' does not contain a word ? for function /findGenome", argGenomeSearchTerm); +apiErrAbort(err400, err400Msg, "search term '%s' does not contain a word ? for function /findGenome", argQ); if (wordCount > 5) -apiErrAbort(err400, err400Msg, "search term '%s=%s' should not have more than 5 words for function /findGenome", argGenomeSearchTerm, searchString); +apiErrAbort(err400, err400Msg, "search term '%s=%s' should not have more than 5 words for function /findGenome", argQ, searchString); struct jsonWrite *jw = apiStartOutput(); jsonWriteString(jw, argBrowser, browserExistString); long long itemCount = 0; long long totalMatchCount = 0; char **words; AllocArray(words, wordCount); (void) chopByWhite(searchString, words, wordCount); if (1 == wordCount) itemCount = oneWordSearch(conn, words[0], jw, &totalMatchCount, &prefixSearch); else /* multiple word search */ itemCount = multipleWordSearch(conn, words, wordCount, jw, &totalMatchCount); if (prefixSearch) { struct dyString *addedStar = dyStringNew(64); dyStringPrintf(addedStar, "%s*", inputSearchString); endResultSearchString = dyStringCannibalize(&addedStar); - jsonWriteString(jw, argGenomeSearchTerm, endResultSearchString); + jsonWriteString(jw, argQ, endResultSearchString); } else { endResultSearchString = inputSearchString; - jsonWriteString(jw, argGenomeSearchTerm, inputSearchString); + jsonWriteString(jw, argQ, inputSearchString); } /* rules about what can be in the search string: * + sign before a word indicates the word must be in the result * - sign before a word indicates it must not be in the result * * at end of word makes the word be a prefix search * "double quotes" to group words together as a phrase to match exactly * < or > adjust the words contribution to the relevance value * >moreImportant itemCount) jsonWriteBoolean(jw, "maxItemsLimit", TRUE); apiFinishOutput(0, NULL, jw); } else - apiErrAbort(err400, err400Msg, "no genomes found matching search term %s='%s' for endpoint: /findGenome", argGenomeSearchTerm, inputSearchString); + apiErrAbort(err400, err400Msg, "no genomes found matching search term %s='%s' for endpoint: /findGenome", argQ, inputSearchString); hDisconnectCentral(&conn); }