Mercurial > sci
annotate lib/apic.h @ 23:2cb228f23f53
misc: rework todo/jobs HTTP requests
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 21 Jul 2022 21:55:02 +0200 |
parents | dd078aea5d02 |
children | dae2de19ca5d |
rev | line source |
---|---|
19 | 1 #ifndef SCI_APIC_H |
2 #define SCI_APIC_H | |
3 | |
22
dd078aea5d02
misc: use project/worker name as primary key
David Demelier <markand@malikania.fr>
parents:
20
diff
changeset
|
4 #include <sys/types.h> |
dd078aea5d02
misc: use project/worker name as primary key
David Demelier <markand@malikania.fr>
parents:
20
diff
changeset
|
5 |
19 | 6 #include <jansson.h> |
7 | |
20 | 8 #include "config.h" |
9 | |
19 | 10 #define APIC_ERR_MAX 128 |
11 | |
20 | 12 struct job; |
13 struct jobresult; | |
14 struct project; | |
15 struct worker; | |
16 | |
17 struct apic { | |
19 | 18 json_t *doc; |
19 char error[APIC_ERR_MAX]; | |
20 long status; | |
21 }; | |
22 | |
20 | 23 extern struct apiconf { |
24 char baseurl[SCI_URL_MAX]; | |
25 } apiconf; | |
26 | |
27 /* Generic HTTP commands using JSON. */ | |
28 | |
29 /* Perform GET request. */ | |
19 | 30 int |
20 | 31 apic_get(struct apic *, const char *, ...); |
32 | |
33 /* Perform POST request with JSON body. */ | |
34 int | |
35 apic_post(struct apic *, const json_t *, const char *, ...); | |
36 | |
37 /* | |
38 * Commands to fetch, create, delete or update data. | |
39 * | |
40 * Any of the following commands need to keep apic structure alive as long as | |
41 * data objects are being used because they reference JSON values directly from | |
42 * the HTTP response. | |
43 */ | |
44 | |
45 int | |
46 apic_job_add(struct apic *, struct job *); | |
47 | |
48 ssize_t | |
23
2cb228f23f53
misc: rework todo/jobs HTTP requests
David Demelier <markand@malikania.fr>
parents:
22
diff
changeset
|
49 apic_job_todo(struct apic *, struct job *, size_t, const char *); |
19 | 50 |
51 int | |
20 | 52 apic_jobresult_add(struct apic *, struct jobresult *); |
53 | |
54 int | |
22
dd078aea5d02
misc: use project/worker name as primary key
David Demelier <markand@malikania.fr>
parents:
20
diff
changeset
|
55 apic_project_save(struct apic *, struct project *); |
20 | 56 |
57 ssize_t | |
58 apic_project_list(struct apic *, struct project *, size_t); | |
59 | |
60 int | |
22
dd078aea5d02
misc: use project/worker name as primary key
David Demelier <markand@malikania.fr>
parents:
20
diff
changeset
|
61 apic_project_find(struct apic *, struct project *, const char *); |
20 | 62 |
63 int | |
22
dd078aea5d02
misc: use project/worker name as primary key
David Demelier <markand@malikania.fr>
parents:
20
diff
changeset
|
64 apic_worker_save(struct apic *, struct worker *); |
20 | 65 |
66 ssize_t | |
67 apic_worker_list(struct apic *, struct worker *, size_t); | |
68 | |
69 int | |
22
dd078aea5d02
misc: use project/worker name as primary key
David Demelier <markand@malikania.fr>
parents:
20
diff
changeset
|
70 apic_worker_find(struct apic *, struct worker *, const char *); |
20 | 71 |
72 void | |
73 apic_finish(struct apic *); | |
19 | 74 |
75 #endif /* !SCI_APIC_H */ |