AtlatestRepositorysigil-discourse
sigil-discourse / tree / src / discoursecategories.sgl
1
;;; (discourse categories) - Category management.2
;;;3
;;; Functions for listing, creating, and updating Discourse categories.5
(define-library (discourse categories)6
(import (sigil core)7
(sigil string)8
(discourse client))10
(export discourse-list-categories11
discourse-get-category12
discourse-create-category13
discourse-update-category)15
(begin17
;;; List all categories.18
(define (discourse-list-categories base-url api-key username)19
(discourse-get/json api-key username20
(discourse-url base-url "categories.json")))22
;;; Get a specific category by ID.23
(define (discourse-get-category base-url api-key username category-id)24
(discourse-get/json api-key username25
(discourse-url base-url "c" (number->string category-id) "show.json")))27
;;; Create a new category.28
(define (discourse-create-category base-url api-key username name color text-color)29
(discourse-post/json api-key username30
(discourse-url base-url "categories.json")31
#{ name: name32
color: color33
text_color: text-color }))35
;;; Update an existing category.36
(define (discourse-update-category base-url api-key username category-id name color)37
(discourse-put/json api-key username38
(discourse-url base-url "categories" (string-append (number->string category-id) ".json"))39
#{ name: name40
color: color }))42
))