aboutsummaryrefslogtreecommitdiff
path: root/lib/models
diff options
context:
space:
mode:
authorAdelyn Breelove <[email protected]>2018-12-17 15:04:02 -0700
committerAdelyn Breelove <[email protected]>2018-12-17 15:04:02 -0700
commit10ff247b7643fb0bb3aade5faff37c569feb0a20 (patch)
tree662767c51baf3c39591ee7fecbc36d6642a93243 /lib/models
parentSome abstractions (diff)
downloaddisml-10ff247b7643fb0bb3aade5faff37c569feb0a20.tar.xz
disml-10ff247b7643fb0bb3aade5faff37c569feb0a20.zip
More stuff
Diffstat (limited to 'lib/models')
-rw-r--r--lib/models/gen/guild.atd2
-rw-r--r--lib/models/gen/guild_j.ml6
-rw-r--r--lib/models/gen/guild_j.mli2
-rw-r--r--lib/models/gen/guild_t.ml2
-rw-r--r--lib/models/gen/guild_t.mli2
-rw-r--r--lib/models/gen/role.atd2
-rw-r--r--lib/models/guild.ml6
-rw-r--r--lib/models/role.ml9
8 files changed, 20 insertions, 11 deletions
diff --git a/lib/models/gen/guild.atd b/lib/models/gen/guild.atd
index 3bb40d9..aec3f86 100644
--- a/lib/models/gen/guild.atd
+++ b/lib/models/gen/guild.atd
@@ -1,7 +1,7 @@
type snowflake <ocaml from="Snowflake" t="t"> = abstract
type user <ocaml from="User" t="t"> = abstract
type member <ocaml from="Member" t="t"> = abstract
-type role <ocaml from="Role" t="t"> = abstract
+type role <ocaml from="Role" t="role"> = abstract
type channel <ocaml from="Channel" t="t"> = abstract
type emoji <ocaml from="Emoji" t="t"> = abstract
diff --git a/lib/models/gen/guild_j.ml b/lib/models/gen/guild_j.ml
index 210dee8..3995965 100644
--- a/lib/models/gen/guild_j.ml
+++ b/lib/models/gen/guild_j.ml
@@ -5,7 +5,7 @@ type user = User_t.t
type snowflake = Snowflake_t.t
-type role = Role_t.t
+type role = Role_t.role
type member = Member_t.t
@@ -67,14 +67,14 @@ let read_snowflake = (
let snowflake_of_string s =
read_snowflake (Yojson.Safe.init_lexer ()) (Lexing.from_string s)
let write_role = (
- Role_j.write_t
+ Role_j.write_role
)
let string_of_role ?(len = 1024) x =
let ob = Bi_outbuf.create len in
write_role ob x;
Bi_outbuf.contents ob
let read_role = (
- Role_j.read_t
+ Role_j.read_role
)
let role_of_string s =
read_role (Yojson.Safe.init_lexer ()) (Lexing.from_string s)
diff --git a/lib/models/gen/guild_j.mli b/lib/models/gen/guild_j.mli
index 7eca304..b84f039 100644
--- a/lib/models/gen/guild_j.mli
+++ b/lib/models/gen/guild_j.mli
@@ -5,7 +5,7 @@ type user = User_t.t
type snowflake = Snowflake_t.t
-type role = Role_t.t
+type role = Role_t.role
type member = Member_t.t
diff --git a/lib/models/gen/guild_t.ml b/lib/models/gen/guild_t.ml
index fe2a59c..e2bfe79 100644
--- a/lib/models/gen/guild_t.ml
+++ b/lib/models/gen/guild_t.ml
@@ -5,7 +5,7 @@ type user = User_t.t
type snowflake = Snowflake_t.t
-type role = Role_t.t
+type role = Role_t.role
type member = Member_t.t
diff --git a/lib/models/gen/guild_t.mli b/lib/models/gen/guild_t.mli
index fe2a59c..e2bfe79 100644
--- a/lib/models/gen/guild_t.mli
+++ b/lib/models/gen/guild_t.mli
@@ -5,7 +5,7 @@ type user = User_t.t
type snowflake = Snowflake_t.t
-type role = Role_t.t
+type role = Role_t.role
type member = Member_t.t
diff --git a/lib/models/gen/role.atd b/lib/models/gen/role.atd
index 8e3f6aa..bfe6b13 100644
--- a/lib/models/gen/role.atd
+++ b/lib/models/gen/role.atd
@@ -19,4 +19,4 @@ type role_update = {
type t = {
inherit role;
guild_id: snowflake;
-} \ No newline at end of file
+ } \ No newline at end of file
diff --git a/lib/models/guild.ml b/lib/models/guild.ml
index ade67be..7364327 100644
--- a/lib/models/guild.ml
+++ b/lib/models/guild.ml
@@ -62,7 +62,11 @@ module Make(Http : S.Http) = struct
m |> Yojson.Safe.to_string |> Member_j.t_of_string
let get_prune_count ~days guild = Http.guild_prune_count guild.id days
- let get_role ~id guild = List.find ~f:(fun r -> r.id = id) guild.roles
+
+ let get_role ~id guild =
+ let role = List.find ~f:(fun r -> r.id = id) guild.roles in
+ Option.(role >>| fun role -> Role.wrap { role; id=guild.id; })
+
let get_webhooks guild = Http.get_guild_webhooks guild.id
let kick_user ~id ?reason guild =
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 =