about summary refs log tree commit diff
path: root/users/grfn/bbbg/src/bbbg/discord.clj
blob: e854ec1d147d0f5f6d84160334537235cef137ac (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
(ns bbbg.discord
  (:refer-clojure :exclude [get])
  (:require
   [bbbg.util.dev-secrets :refer [secret]]
   [clj-http.client :as http]
   [clojure.string :as str]))

(def base-uri "https://discord.com/api")

(defn api-uri [path]
  (str base-uri
       (when-not (str/starts-with? path "/") "/")
       path))

(defn get
  ([token path]
   (get token path {}))
  ([token path params]
   (:body
    (http/get (api-uri path)
              (-> params
                  (assoc :accept :json
                         :as :json)
                  (assoc-in [:headers "authorization"]
                            (str "Bearer " (:token token))))))))

(defn me [token]
  (get token "/users/@me"))

(defn guilds [token]
  (get token "/users/@me/guilds"))

(defn guild-member [token guild-id]
  (get token (str "/users/@me/guilds/" guild-id "/member")))

(comment
  (def token {:token (secret "bbbg/test-token")})
  (me token)
  (guilds token)
  (guild-member token "841295283564052510")

  (get token "/guilds/841295283564052510/roles")

  )