AtlatestRepositorysigil-discourse
sigil-discourse / tree / src / discourseposts.sgl
1
;;; (discourse posts) - Post management.2
;;;3
;;; Functions for getting, creating, updating, and deleting posts4
;;; within Discourse topics.6
(define-library (discourse posts)7
(import (sigil core)8
(sigil string)9
(discourse client))11
(export discourse-get-post12
discourse-create-post13
discourse-update-post14
discourse-delete-post)16
(begin18
;;; Get a specific post by ID.19
(define (discourse-get-post base-url api-key username post-id)20
(discourse-get/json api-key username21
(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 username26
(discourse-url base-url "posts.json")27
#{ topic_id: topic-id28
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 username33
(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 username39
(discourse-url base-url "posts" (string-append (number->string post-id) ".json"))))41
))