Mercurial > sci
annotate page-api-projects.c @ 16:3051ef92173a
misc: add license headers
author | David Demelier <markand@malikania.fr> |
---|---|
date | Fri, 09 Jul 2021 21:12:16 +0200 |
parents | 215c0c3b3609 |
children |
rev | line source |
---|---|
16
3051ef92173a
misc: add license headers
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
1 /* |
3051ef92173a
misc: add license headers
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
2 * page-api-projects.c -- /api/v?/projects route |
3051ef92173a
misc: add license headers
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
3 * |
3051ef92173a
misc: add license headers
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
4 * Copyright (c) 2021 David Demelier <markand@malikania.fr> |
3051ef92173a
misc: add license headers
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
5 * |
3051ef92173a
misc: add license headers
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
6 * Permission to use, copy, modify, and/or distribute this software for any |
3051ef92173a
misc: add license headers
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
7 * purpose with or without fee is hereby granted, provided that the above |
3051ef92173a
misc: add license headers
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
8 * copyright notice and this permission notice appear in all copies. |
3051ef92173a
misc: add license headers
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
9 * |
3051ef92173a
misc: add license headers
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
3051ef92173a
misc: add license headers
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
3051ef92173a
misc: add license headers
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
3051ef92173a
misc: add license headers
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
3051ef92173a
misc: add license headers
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
3051ef92173a
misc: add license headers
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
3051ef92173a
misc: add license headers
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
3051ef92173a
misc: add license headers
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
17 */ |
3051ef92173a
misc: add license headers
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
18 |
3
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 #include <assert.h> |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 #include "config.h" |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 #include "page-api-projects.h" |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 #include "page.h" |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 #include "req.h" |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 #include "types.h" |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 #include "util.h" |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 static void |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 list(struct kreq *r, const struct project *projects, size_t projectsz) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 struct json_t *doc; |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 char *dump; |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 doc = project_to(projects, projectsz); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 dump = json_dumps(doc, JSON_COMPACT); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 khttp_puts(r, dump); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 free(dump); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 json_decref(doc); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 } |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 static void |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 push(struct kreq *r, const struct project *p) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 struct json_t *json; |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 char *dump; |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 json = project_to(p, 1); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 dump = json_dumps(json, JSON_COMPACT); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 khttp_head(r, kresps[KRESP_CONTENT_TYPE], "%s", kmimetypes[KMIME_APP_JSON]); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 khttp_head(r, kresps[KRESP_STATUS], "%s", khttps[KHTTP_200]); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 khttp_body(r); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 khttp_puts(r, dump); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 khttp_free(r); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 free(dump); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 json_decref(json); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 } |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 static void |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 get_one(struct kreq *r, const char *name) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 struct project project; |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 struct req req; |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 if ((req = req_project_find(&project, name)).status) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 page(r, NULL, KHTTP_500, KMIME_APP_JSON, NULL); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 else |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 push(r, &project); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 } |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 static void |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 get_one_id(struct kreq *r, int id) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
75 { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 struct project project; |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
77 struct req req; |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
78 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
79 if ((req = req_project_find_id(&project, id)).status) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
80 page(r, NULL, KHTTP_500, KMIME_APP_JSON, NULL); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
81 else |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
82 push(r, &project); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
83 } |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
84 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
85 static void |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
86 get_all(struct kreq *r) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
87 { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 struct project projects[SCI_PROJECT_MAX]; |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
89 struct req req; |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
90 size_t projectsz = UTIL_SIZE(projects); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
91 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
92 if ((req = req_project_list(projects, &projectsz)).status) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
93 page(r, NULL, KHTTP_500, KMIME_APP_JSON, NULL); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
94 else { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
95 khttp_head(r, kresps[KRESP_CONTENT_TYPE], "%s", kmimetypes[KMIME_APP_JSON]); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
96 khttp_head(r, kresps[KRESP_STATUS], "%s", khttps[KHTTP_200]); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
97 khttp_body(r); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
98 list(r, projects, projectsz); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
99 req_finish(&req); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
100 khttp_free(r); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
101 } |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
102 } |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
103 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
104 static void |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
105 get(struct kreq *r) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
106 { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
107 char name[128]; |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
108 int id; |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
109 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
110 if (sscanf(r->path, "v1/projects/%d", &id) == 1) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
111 get_one_id(r, id); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
112 else if (sscanf(r->path, "v1/projects/%127s", name) == 1) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
113 get_one(r, name); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
114 else |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
115 get_all(r); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
116 } |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
117 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
118 void |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
119 page_api_v1_projects(struct kreq *r) |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
120 { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
121 assert(r); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
122 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
123 switch (r->method) { |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
124 case KMETHOD_GET: |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
125 get(r); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
126 break; |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
127 #if 0 |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
128 case KMETHOD_POST: |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
129 post(r); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
130 break; |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
131 #endif |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
132 default: |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
133 page(r, NULL, KHTTP_400, KMIME_APP_JSON, NULL); |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
134 break; |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
135 } |
215c0c3b3609
misc: use JSON everywhere (scictl/sciwebd)
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
136 } |