Mercurial > sci
diff scid/page-api-jobresults.c @ 27:dae2de19ca5d
misc: switch to JSON everywhere
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 03 Aug 2022 15:18:09 +0200 |
parents | 7e10cace67a3 |
children | 695637f1d8a7 |
line wrap: on
line diff
--- a/scid/page-api-jobresults.c Tue Aug 02 13:24:13 2022 +0200 +++ b/scid/page-api-jobresults.c Wed Aug 03 15:18:09 2022 +0200 @@ -16,54 +16,16 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#include <sys/types.h> #include <assert.h> -#include <stdarg.h> -#include <stdint.h> -#include <kcgi.h> - -#include "db.h" -#include "log.h" -#include "page.h" -#include "types.h" - -static int -save(const char *json) -{ - struct jobresult res = {0}; - int ret = -1; - json_t *doc; - json_error_t err; - - if (!(doc = json_loads(json, 0, &err))) - log_warn("api/post: invalid JSON input: %s", err.text); - else if (jobresult_from(&res, 1, doc) < 0) - log_warn("api/post: failed to decode parameters"); - else if (db_jobresult_add(&res) < 0) - log_warn("api/post: database save error"); - else - ret = 0; - - json_decref(doc); - jobresult_finish(&res); - - return ret; -} +#include "crud.h" +#include "db.h" +#include "page.h" static void post(struct kreq *r) { - if (r->fieldsz < 1) - page(r, KHTTP_400, KMIME_APP_JSON, NULL, NULL); - else if (save(r->fields[0].val) < 0) - page(r, KHTTP_500, KMIME_APP_JSON, NULL, NULL); - else { - khttp_head(r, kresps[KRESP_CONTENT_TYPE], "%s", kmimetypes[KMIME_APP_JSON]); - khttp_head(r, kresps[KRESP_STATUS], "%s", khttps[KHTTP_200]); - khttp_body(r); - khttp_free(r); - } + crud_insert(r, db_jobresult_add, "page-api-jobresults"); } void