75af658048fd25b17153e6fff08712e48f78f61a hiram Thu Apr 4 10:19:55 2019 -0700 begin to think about error code returns refs #18869 diff --git src/hg/hubApi/apiUtils.c src/hg/hubApi/apiUtils.c index 7b7936d..f9a9a82 100644 --- src/hg/hubApi/apiUtils.c +++ src/hg/hubApi/apiUtils.c @@ -1,28 +1,51 @@ /* utility functions for data API business */ #include "dataApi.h" +#ifdef NOT +static void jsonFinishOutput(int errorCode, char *errorString, struct jsonWrite *jw) +/* potential output an error code other than 200 */ +{ +/* this is the first time any output to stdout has taken place for + * json output, therefore, start with the appropriate header + */ +puts("Content-Type:application/json"); +/* potentially with an error code return */ +if (errorCode) + { + char errString[2048]; + safef(errString, sizeof(errString), "Status: %d %s",errorCode,errorString); + puts(errString); + } +puts("\n"); + +jsonWriteObjectEnd(jw); +fputs(jw->dy->string,stdout); +} +#endif + void apiErrAbort(char *format, ...) /* Issue an error message in json format, and exit(0) */ { char errMsg[2048]; va_list args; va_start(args, format); vsnprintf(errMsg, sizeof(errMsg), format, args); struct jsonWrite *jw = apiStartOutput(); jsonWriteString(jw, "error", errMsg); +// jsonFinishOutput(400, "Bad Request", jw); jsonWriteObjectEnd(jw); fputs(jw->dy->string,stdout); exit(0); } struct jsonWrite *apiStartOutput() /* begin json output with standard header information for all requests */ { time_t timeNow = time(NULL); // struct tm tm; // gmtime_r(&timeNow, &tm); struct jsonWrite *jw = jsonWriteNew(); jsonWriteObjectStart(jw, NULL); // not recommended: jsonWriteString(jw, "apiVersion", "v"CGI_VERSION); // not needed jsonWriteString(jw, "source", "UCSantaCruz");