aboutsummaryrefslogtreecommitdiff
path: root/lib/models/role.ml
blob: e65d61ec3575992138744d9c82efb74191622484 (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
open Role_t

let wrap { id; role; } =
        let guild_id = id in
        let {id;name;colour;hoist;position;permissions;managed;mentionable} = role in
        {id;name;colour;hoist;position;permissions;managed;mentionable;guild_id}

module Make(Http : S.Http) = struct
    let edit_role ~body role = Http.guild_role_edit role.guild_id role.id body

    let allow_mention role =
        edit_role ~body:(`Assoc [("mentionable", `Bool true)]) role
    
    let delete role = Http.guild_role_remove role.guild_id role.id

    let disallow_mention role =
        edit_role ~body:(`Assoc [("mentionable", `Bool false)]) role

    let hoist role =
        edit_role ~body:(`Assoc [("hoist", `Bool true)]) role

    let set_colour ~colour role =
        edit_role ~body:(`Assoc [("color", `Int colour)]) role

    let set_name ~name role =
        edit_role ~body:(`Assoc [("name", `String name)]) role

    let unhoist role =
        edit_role ~body:(`Assoc [("hoist", `Bool false)]) role
end