aboutsummaryrefslogtreecommitdiff
path: root/lib/client.ml
blob: 45b6d5471bf3488854b83f125a133d7704bcc66b (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
module Make(T : S.ClientOptions)(H : S.Handler_f) = struct
    open Async

    module Http = Http.Make(T)
    module Models = Models.Make(Http)
    module Handler = H.Make(Models)
    module Dispatch = Dispatch.Make(Handler)
    module Sharder = Sharder.Make(Http)(Dispatch)

    type t = {
        sharder: Sharder.t;
        token: string;
    }

    let token = T.token

    let start ?count () =
        Sharder.start ?count ()
        >>| fun sharder ->
        { sharder; token; }

    let set_status ~status client =
        Sharder.set_status ~status client.sharder

    let set_status_with ~f client =
        Sharder.set_status_with ~f client.sharder

    let request_guild_members ~guild ?query ?limit client =
        Sharder.request_guild_members ~guild ?query ?limit client.sharder
end