AtlatestRepositorysigil-discourse

sigil-discourse / tree / src / discoursemessages.sgl

1;;; (discourse messages) - Private message management.
2;;;
3;;; Functions for sending and listing private messages on Discourse.
4
5(define-library (discourse messages)
6 (import (sigil core)
7 (sigil string)
8 (discourse client))
9
10 (export discourse-send-message
11 discourse-list-messages
12 discourse-list-sent-messages)
14 (begin
16 ;;; Send a private message.
17 ;;;
18 ;;; recipients is a comma-separated string of usernames.
19 (define (discourse-send-message base-url api-key username title raw recipients)
20 (discourse-post/json api-key username
21 (discourse-url base-url "posts.json")
22 #{ title: title
23 raw: raw
24 target_recipients: recipients
25 archetype: "private_message" }))
27 ;;; List private messages received by a user.
28 (define (discourse-list-messages base-url api-key username target-user)
29 (discourse-get/json api-key username
30 (discourse-url base-url "topics" "private-messages" (string-append target-user ".json"))))
32 ;;; List private messages sent by a user.
33 (define (discourse-list-sent-messages base-url api-key username target-user)
34 (discourse-get/json api-key username
35 (discourse-url base-url "topics" "private-messages-sent" (string-append target-user ".json"))))
37 ))