Mercurial > sci
comparison scid/page-api-todo.c @ 22:dd078aea5d02
misc: use project/worker name as primary key
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 21 Jul 2022 20:23:22 +0200 |
parents | f98ea578b1ef |
children | 7e10cace67a3 |
comparison
equal
deleted
inserted
replaced
21:ec30e1b078a9 | 22:dd078aea5d02 |
---|---|
74 | 74 |
75 #endif | 75 #endif |
76 | 76 |
77 /* | 77 /* |
78 * GET /api/v1/todo/<worker-name> | 78 * GET /api/v1/todo/<worker-name> |
79 * ---------------- | 79 * ------------------------------ |
80 * | 80 * |
81 * Retrieve a list of jobs to perform for this worker name. | 81 * Retrieve a list of jobs to perform for this worker name. |
82 */ | 82 */ |
83 static void | 83 static void |
84 get(struct kreq *r) | 84 get(struct kreq *r) |
85 { | 85 { |
86 struct job jobs[SCI_JOB_LIST_MAX]; | 86 struct job jobs[SCI_JOB_LIST_MAX]; |
87 ssize_t jobsz; | 87 ssize_t jobsz; |
88 struct worker wk = {0}; | |
89 | 88 |
90 if (db_worker_find(&wk, util_basename(r->path)) < 0) { | 89 if ((jobsz = db_job_todo(jobs, UTIL_SIZE(jobs), util_basename(r->path))) < 0) |
91 page(r, NULL, KHTTP_404, KMIME_APP_JSON, NULL); | |
92 return; | |
93 } | |
94 | |
95 if ((jobsz = db_job_todo(jobs, UTIL_SIZE(jobs), wk.id)) < 0) | |
96 page(r, NULL, KHTTP_500, KMIME_APP_JSON, NULL); | 90 page(r, NULL, KHTTP_500, KMIME_APP_JSON, NULL); |
97 else { | 91 else { |
98 khttp_head(r, kresps[KRESP_CONTENT_TYPE], "%s", kmimetypes[KMIME_APP_JSON]); | 92 khttp_head(r, kresps[KRESP_CONTENT_TYPE], "%s", kmimetypes[KMIME_APP_JSON]); |
99 khttp_head(r, kresps[KRESP_STATUS], "%s", khttps[KHTTP_200]); | 93 khttp_head(r, kresps[KRESP_STATUS], "%s", khttps[KHTTP_200]); |
100 khttp_body(r); | 94 khttp_body(r); |
105 for (ssize_t i = 0; i < jobsz; ++i) | 99 for (ssize_t i = 0; i < jobsz; ++i) |
106 job_finish(&jobs[i]); | 100 job_finish(&jobs[i]); |
107 } | 101 } |
108 | 102 |
109 void | 103 void |
110 page_api_v1_jobs(struct kreq *r) | 104 page_api_v1_todo(struct kreq *r) |
111 { | 105 { |
112 assert(r); | 106 assert(r); |
113 | 107 |
114 switch (r->method) { | 108 switch (r->method) { |
115 case KMETHOD_GET: | 109 case KMETHOD_GET: |