diff options
Diffstat (limited to 'lib/models/role.ml')
| -rw-r--r-- | lib/models/role.ml | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/models/role.ml b/lib/models/role.ml index 36b7d4b..aa931d6 100644 --- a/lib/models/role.ml +++ b/lib/models/role.ml @@ -1,2 +1,27 @@ module Make(Http : S.Http) = struct + open Role_t + + type t = Role_t.t + + let edit_role ~body (role:t) = 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:t) = 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
\ No newline at end of file |