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: