commit aea0ea4

default  ·  2023-05-29 07:37:54 +0000 UTC
parent 60ea9b3
In update_question(), send the updated question to all voters.
1 files changed,  +16, -5
+16, -5
 1@@ -970,10 +970,11 @@ xs_dict *msg_question(snac *user, const char *content, const xs_list *opts, int
 2 int update_question(snac *user, const char *id)
 3 /* updates the poll counts */
 4 {
 5-    xs *msg  = NULL;
 6-    xs *rcnt = xs_dict_new();
 7-    xs *z    = xs_number_new(0);
 8-    xs *chld = NULL;
 9+    xs *msg   = NULL;
10+    xs *rcnt  = xs_dict_new();
11+    xs *z     = xs_number_new(0);
12+    xs *chld  = NULL;
13+    xs *rcpts = xs_list_new();
14     xs_list *opts;
15     xs_val *p;
16     xs_str *k;
17@@ -1010,7 +1011,9 @@ int update_question(snac *user, const char *id)
18             continue;
19 
20         const char *name = xs_dict_get(obj, "name");
21-        if (name) {
22+        const char *atto = xs_dict_get(obj, "attributedTo");
23+
24+        if (name && atto) {
25             /* get the current count */
26             const xs_number *cnt = xs_dict_get(rcnt, name);
27 
28@@ -1018,6 +1021,8 @@ int update_question(snac *user, const char *id)
29                 /* if it exists, increment */
30                 xs *ucnt = xs_number_new(xs_number_get(cnt) + 1);
31                 rcnt = xs_dict_set(rcnt, name, ucnt);
32+
33+                rcpts = xs_list_append(rcpts, atto);
34             }
35         }
36     }
37@@ -1058,6 +1063,12 @@ int update_question(snac *user, const char *id)
38     snac_debug(user, 1, xs_fmt("recounted poll %s", id));
39     timeline_touch(user);
40 
41+    /* send an update message to all voters */
42+    xs *u_msg = msg_update(user, msg);
43+    u_msg = xs_dict_set(u_msg, "cc", rcpts);
44+
45+    enqueue_message(user, u_msg);
46+
47     return 0;
48 }
49