Mercurial > prosody-modules
comparison mod_reminders/mod_reminders.lua @ 3921:9eabd68b8e48
mod_reminders: add id to sent reminder
Update the acknowledgement of reminder's creation with ProtoXEP
comments.
author | marc0s <marcos@tenak.net> |
---|---|
date | Fri, 28 Feb 2020 16:22:37 +0100 |
parents | 3e19c25ff93e |
children |
comparison
equal
deleted
inserted
replaced
3920:cf92e3b30c18 | 3921:9eabd68b8e48 |
---|---|
62 local function send_reminder (reminder) | 62 local function send_reminder (reminder) |
63 -- actually delivers the <message /> with the reminder to the user | 63 -- actually delivers the <message /> with the reminder to the user |
64 local bare = jid.bare(reminder.jid); | 64 local bare = jid.bare(reminder.jid); |
65 module:log("debug", "Sending reminder %s to %s", reminder.id, bare); | 65 module:log("debug", "Sending reminder %s to %s", reminder.id, bare); |
66 local message = st.message({ from = "localhost"; to = bare; id = id.short() }) | 66 local message = st.message({ from = "localhost"; to = bare; id = id.short() }) |
67 :tag("reminder", {xmlns = xmlns_reminders}) | 67 :tag("reminder", {id = reminder.id; xmlns = xmlns_reminders}) |
68 :add_child(reminder.text) | 68 :add_child(reminder.text) |
69 :tag("date"):text(datetime.datetime(reminder.date)):up(); | 69 :tag("date"):text(datetime.datetime(reminder.date)):up(); |
70 module:send(message); | 70 module:send(message); |
71 return delete_reminder(reminder.id) | 71 return delete_reminder(reminder.id) |
72 end | 72 end |
108 end | 108 end |
109 end | 109 end |
110 end | 110 end |
111 | 111 |
112 local function create_reminder (jid, reminder) | 112 local function create_reminder (jid, reminder) |
113 local rem = st.clone(reminder); | |
114 local date = reminder:get_child("date"); | 113 local date = reminder:get_child("date"); |
115 local text = reminder:get_child("text"); | 114 local text = reminder:get_child("text"); |
116 if date == nil or text == nil then | 115 if date == nil or text == nil then |
117 return nil, reminder_error("missing_fields") | 116 return nil, reminder_error("missing_fields") |
118 end | 117 end |
121 if parsed_date == nil then | 120 if parsed_date == nil then |
122 return nil, reminder_error("invalid_dateformat") | 121 return nil, reminder_error("invalid_dateformat") |
123 end | 122 end |
124 if parsed_date < now then | 123 if parsed_date < now then |
125 return nil, reminder_error("past_date"), nil | 124 return nil, reminder_error("past_date"), nil |
126 end | 125 end |
127 rem.attr.id = id.medium(); | 126 local reminder_id = id.medium(); |
127 local rem = st.stanza("reminder", {xmlns = xmlns_reminders; id = reminder_id}); | |
128 local data = { | 128 local data = { |
129 id = rem.attr.id; | 129 id = reminder_id; |
130 jid = jid; | 130 jid = jid; |
131 text = text; | 131 text = text; |
132 date = parsed_date; | 132 date = parsed_date; |
133 } | 133 } |
134 local stored = store_reminder(data); | 134 local stored = store_reminder(data); |