From 57df76de6441899b659e30c6a8e9d7572b85f7a0 Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Mon, 17 Dec 2018 13:13:10 -0700 Subject: Some abstractions --- lib/models/role.ml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'lib/models/role.ml') diff --git a/lib/models/role.ml b/lib/models/role.ml index 36b7d4b..10272a7 100644 --- a/lib/models/role.ml +++ b/lib/models/role.ml @@ -1,2 +1,25 @@ module Make(Http : S.Http) = struct + open Role_t + + 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 \ No newline at end of file -- cgit v1.2.3 From 10ff247b7643fb0bb3aade5faff37c569feb0a20 Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Mon, 17 Dec 2018 15:04:02 -0700 Subject: More stuff --- lib/models/role.ml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'lib/models/role.ml') diff --git a/lib/models/role.ml b/lib/models/role.ml index 10272a7..e65d61e 100644 --- a/lib/models/role.ml +++ b/lib/models/role.ml @@ -1,6 +1,11 @@ -module Make(Http : S.Http) = struct - open Role_t +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 = -- cgit v1.2.3 From 1a73007b3aaa17940173eaff1eb4f6703fd9ec0c Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Wed, 19 Dec 2018 13:44:04 -0700 Subject: Re-arrange autogen serialization files and incorporate into dune file --- lib/models/role.ml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'lib/models/role.ml') diff --git a/lib/models/role.ml b/lib/models/role.ml index e65d61e..5a3701c 100644 --- a/lib/models/role.ml +++ b/lib/models/role.ml @@ -1,11 +1,8 @@ -open Role_t +module Make(Http : S.Http) = struct + 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} + type t = Role_t.t -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 = -- cgit v1.2.3 From 66e1462b8dd3f2b89cf066f314eeb9070b05be69 Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Wed, 19 Dec 2018 15:50:16 -0700 Subject: Fix member abstraction and helper methods --- lib/models/role.ml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/models/role.ml') diff --git a/lib/models/role.ml b/lib/models/role.ml index 5a3701c..aa931d6 100644 --- a/lib/models/role.ml +++ b/lib/models/role.ml @@ -3,12 +3,12 @@ module Make(Http : S.Http) = struct type t = Role_t.t - let edit_role ~body role = Http.guild_role_edit role.guild_id role.id body + 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 = Http.guild_role_remove role.guild_id role.id + 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 -- cgit v1.2.3