AtlatestRepositorysigil-discourse
1;;; (discourse posts) - Post management.
2;;;
3;;; Functions for getting, creating, updating, and deleting posts
4;;; within Discourse topics.
5
6(define-library (discourse posts)
7 (import (sigil core)
8 (sigil string)
9 (discourse client))
11 (export discourse-get-post
12 discourse-create-post
13 discourse-update-post
14 discourse-delete-post)
16 (begin
18 ;;; Get a specific post by ID.
19 (define (discourse-get-post base-url api-key username post-id)
20 (discourse-get/json api-key username
21 (discourse-url base-url "posts" (string-append (number->string post-id) ".json"))))
23 ;;; Create a new post (reply to a topic).
24 (define (discourse-create-post base-url api-key username topic-id raw)
25 (discourse-post/json api-key username
26 (discourse-url base-url "posts.json")
27 #{ topic_id: topic-id
28 raw: raw }))
30 ;;; Update a post's content.
31 (define (discourse-update-post base-url api-key username post-id raw)
32 (discourse-put/json api-key username
33 (discourse-url base-url "posts" (string-append (number->string post-id) ".json"))
34 #{ post: #{ raw: raw } }))
36 ;;; Delete a post.
37 (define (discourse-delete-post base-url api-key username post-id)
38 (discourse-delete api-key username
39 (discourse-url base-url "posts" (string-append (number->string post-id) ".json"))))
41 ))