commit 274ae3d
default
·
2023-01-31 20:49:43 +0000 UTC
parent 4e62b40
Reworked enqueue_email().
M
data.c
+6,
-12
1@@ -1318,7 +1318,7 @@ static xs_dict *_enqueue_put(const char *fn, xs_dict *msg)
2 }
3
4
5-static xs_dict *_new_qmsg(const char *type, const xs_dict *msg, int retries)
6+static xs_dict *_new_qmsg(const char *type, const xs_val *msg, int retries)
7 /* creates a queue message */
8 {
9 int qrt = xs_number_get(xs_dict_get(srv_config, "queue_retry_minutes"));
10@@ -1371,7 +1371,7 @@ void enqueue_output(snac *snac, xs_dict *msg, xs_str *inbox, int retries)
11 }
12
13
14-void enqueue_output_by_actor(snac *snac, char *msg, char *actor, int retries)
15+void enqueue_output_by_actor(snac *snac, xs_dict *msg, xs_str *actor, int retries)
16 /* enqueues an output message for an actor */
17 {
18 xs *inbox = get_actor_inbox(snac, actor);
19@@ -1383,18 +1383,12 @@ void enqueue_output_by_actor(snac *snac, char *msg, char *actor, int retries)
20 }
21
22
23-void enqueue_email(snac *snac, char *msg, int retries)
24+void enqueue_email(snac *snac, xs_str *msg, int retries)
25 /* enqueues an email message to be sent */
26 {
27- int qrt = xs_number_get(xs_dict_get(srv_config, "queue_retry_minutes"));
28- xs *ntid = tid(retries * 60 * qrt);
29- xs *fn = xs_fmt("%s/queue/%s.json", snac->basedir, ntid);
30- xs *qmsg = xs_dict_new();
31- xs *rn = xs_number_new(retries);
32-
33- qmsg = xs_dict_append(qmsg, "type", "email");
34- qmsg = xs_dict_append(qmsg, "message", msg);
35- qmsg = xs_dict_append(qmsg, "retries", rn);
36+ xs *qmsg = _new_qmsg("email", msg, retries);
37+ char *ntid = xs_dict_get(qmsg, "ntid");
38+ xs *fn = xs_fmt("%s/queue/%s.json", snac->basedir, ntid);
39
40 qmsg = _enqueue_put(fn, qmsg);
41
M
snac.h
+2,
-2
1@@ -123,8 +123,8 @@ d_char *history_list(snac *snac);
2
3 void enqueue_input(snac *snac, xs_dict *msg, xs_dict *req, int retries);
4 void enqueue_output(snac *snac, xs_dict *msg, xs_str *inbox, int retries);
5-void enqueue_output_by_actor(snac *snac, char *msg, char *actor, int retries);
6-void enqueue_email(snac *snac, char *msg, int retries);
7+void enqueue_output_by_actor(snac *snac, xs_dict *msg, xs_str *actor, int retries);
8+void enqueue_email(snac *snac, xs_str *msg, int retries);
9 void enqueue_message(snac *snac, char *msg);
10
11 d_char *queue(snac *snac);