comparison scid/http.c @ 26:7e10cace67a3

scid: add basic mustache support
author David Demelier <markand@malikania.fr>
date Tue, 02 Aug 2022 13:24:13 +0200
parents 34cbbd215ef7
children dae2de19ca5d
comparison
equal deleted inserted replaced
25:c40f98360ac9 26:7e10cace67a3
30 #include "page-api-jobresults.h" 30 #include "page-api-jobresults.h"
31 #include "page-api-jobs.h" 31 #include "page-api-jobs.h"
32 #include "page-api-projects.h" 32 #include "page-api-projects.h"
33 #include "page-api-todo.h" 33 #include "page-api-todo.h"
34 #include "page-api-workers.h" 34 #include "page-api-workers.h"
35 #include "page-index.h"
35 #include "page.h" 36 #include "page.h"
36 37
37 enum page { 38 enum page {
39 PAGE_INDEX, /* Job results at index. */
38 PAGE_API, 40 PAGE_API,
39 PAGE_LAST /* Not used. */ 41 PAGE_LAST /* Not used. */
40 }; 42 };
41 43
42 static void 44 static void
56 58
57 for (size_t i = 0; apis[i].prefix; ++i) 59 for (size_t i = 0; apis[i].prefix; ++i)
58 if (strncmp(req->path, apis[i].prefix, strlen(apis[i].prefix)) == 0) 60 if (strncmp(req->path, apis[i].prefix, strlen(apis[i].prefix)) == 0)
59 return apis[i].handler(req); 61 return apis[i].handler(req);
60 62
61 page(req, NULL, KHTTP_404, KMIME_TEXT_HTML, "pages/404.html"); 63 page(req, KHTTP_404, KMIME_TEXT_HTML, "pages/404.html", NULL);
62 } 64 }
63 65
64 static const char *pages[] = { 66 static const char *pages[] = {
67 [PAGE_INDEX] = "",
65 [PAGE_API] = "api" 68 [PAGE_API] = "api"
66 }; 69 };
67 70
68 static void (*handlers[])(struct kreq *req) = { 71 static void (*handlers[])(struct kreq *req) = {
72 [PAGE_INDEX] = page_index,
69 [PAGE_API] = dispatch_api 73 [PAGE_API] = dispatch_api
70 }; 74 };
71 75
72 static void 76 static void
73 process(struct kreq *req) 77 process(struct kreq *req)
75 assert(req); 79 assert(req);
76 80
77 log_debug("http: accessing page '%s'", req->path); 81 log_debug("http: accessing page '%s'", req->path);
78 82
79 if (req->page == PAGE_LAST) 83 if (req->page == PAGE_LAST)
80 page(req, NULL, KHTTP_404, KMIME_TEXT_HTML, "pages/404.html"); 84 page(req, KHTTP_404, KMIME_TEXT_HTML, "pages/404.html", NULL);
81 else 85 else
82 handlers[req->page](req); 86 handlers[req->page](req);
83 } 87 }
84 88
85 void 89 void