comparison scid/http.c @ 29:695637f1d8a7

scid: first index page in javascript
author David Demelier <markand@malikania.fr>
date Thu, 04 Aug 2022 14:13:58 +0200
parents dae2de19ca5d
children 081e1c258e64
comparison
equal deleted inserted replaced
28:4c16bb25e4f1 29:695637f1d8a7
32 #include "page-api-jobs.h" 32 #include "page-api-jobs.h"
33 #include "page-api-projects.h" 33 #include "page-api-projects.h"
34 #include "page-api-todo.h" 34 #include "page-api-todo.h"
35 #include "page-api-workers.h" 35 #include "page-api-workers.h"
36 #include "page-index.h" 36 #include "page-index.h"
37 #include "page.h" 37 #include "page-static.h"
38 #include "pageutil.h"
38 39
39 enum page { 40 enum page {
40 PAGE_INDEX, /* Job results at index. */ 41 PAGE_INDEX, /* Job results at index. */
41 PAGE_API, 42 PAGE_API,
43 PAGE_STATIC,
42 PAGE_LAST /* Not used. */ 44 PAGE_LAST /* Not used. */
43 }; 45 };
44 46
45 static void 47 static void
46 dispatch_api(struct kreq *req) 48 dispatch_api(struct kreq *req)
59 61
60 for (size_t i = 0; apis[i].prefix; ++i) 62 for (size_t i = 0; apis[i].prefix; ++i)
61 if (strncmp(req->path, apis[i].prefix, strlen(apis[i].prefix)) == 0) 63 if (strncmp(req->path, apis[i].prefix, strlen(apis[i].prefix)) == 0)
62 return apis[i].handler(req); 64 return apis[i].handler(req);
63 65
64 page(req, KHTTP_404, KMIME_TEXT_HTML, "pages/404.html", NULL); 66 pageutil_status(req, KHTTP_404);
65 } 67 }
66 68
67 static const char *pages[] = { 69 static const char *pages[] = {
68 [PAGE_INDEX] = "", 70 [PAGE_INDEX] = "",
69 [PAGE_API] = "api" 71 [PAGE_API] = "api",
72 [PAGE_STATIC] = "static"
70 }; 73 };
71 74
72 static void (*handlers[])(struct kreq *req) = { 75 static void (*handlers[])(struct kreq *req) = {
73 [PAGE_INDEX] = page_index, 76 [PAGE_INDEX] = page_index,
74 [PAGE_API] = dispatch_api 77 [PAGE_API] = dispatch_api,
78 [PAGE_STATIC] = page_static
75 }; 79 };
76 80
77 static void 81 static void
78 process(struct kreq *req) 82 process(struct kreq *req)
79 { 83 {
80 assert(req); 84 assert(req);
81 85
82 log_debug("http: accessing page '%s'", req->path); 86 log_debug("http: accessing page '%s'", req->path);
83 87
84 if (req->page == PAGE_LAST) 88 if (req->page == PAGE_LAST)
85 page(req, KHTTP_404, KMIME_TEXT_HTML, "pages/404.html", NULL); 89 pageutil_status(req, KHTTP_404);
86 else 90 else
87 handlers[req->page](req); 91 handlers[req->page](req);
88 } 92 }
89 93
90 void 94 void