AtlatestRepositorysigil-discourse

sigil-discourse / tree / src / discoursecategories.sgl

1;;; (discourse categories) - Category management.
2;;;
3;;; Functions for listing, creating, and updating Discourse categories.
4
5(define-library (discourse categories)
6 (import (sigil core)
7 (sigil string)
8 (discourse client))
9
10 (export discourse-list-categories
11 discourse-get-category
12 discourse-create-category
13 discourse-update-category)
15 (begin
17 ;;; List all categories.
18 (define (discourse-list-categories base-url api-key username)
19 (discourse-get/json api-key username
20 (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 username
25 (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 username
30 (discourse-url base-url "categories.json")
31 #{ name: name
32 color: color
33 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 username
38 (discourse-url base-url "categories" (string-append (number->string category-id) ".json"))
39 #{ name: name
40 color: color }))
42 ))