diff options
| author | Adelyn Breelove <[email protected]> | 2018-12-20 16:03:27 -0700 |
|---|---|---|
| committer | Adelyn Breelove <[email protected]> | 2018-12-20 16:03:27 -0700 |
| commit | 9e3c97eb4f5d8a808844cb2e448371ce1cc150e1 (patch) | |
| tree | 2337d229ea595c25dbff88e1b100b91690b21ad4 /lib/models | |
| parent | Fix member abstraction and helper methods (diff) | |
| download | disml-9e3c97eb4f5d8a808844cb2e448371ce1cc150e1.tar.xz disml-9e3c97eb4f5d8a808844cb2e448371ce1cc150e1.zip | |
Working with Discord's channel bullshit
Diffstat (limited to 'lib/models')
| -rw-r--r-- | lib/models/channel.ml | 9 | ||||
| -rw-r--r-- | lib/models/guild.ml | 8 |
2 files changed, 13 insertions, 4 deletions
diff --git a/lib/models/channel.ml b/lib/models/channel.ml index 328cc94..d52be05 100644 --- a/lib/models/channel.ml +++ b/lib/models/channel.ml @@ -1,3 +1,12 @@ +let id (ch:Channel_t.t) = match ch with +| `Group g -> g.id +| `Private p -> p.id +| `GuildText t -> t.id +| `GuildVoice v -> v.id +| `Category c -> c.id + module Make(Http : S.Http) = struct + (* open Channel_t *) + type t = Channel_t.t end
\ No newline at end of file diff --git a/lib/models/guild.ml b/lib/models/guild.ml index a10cd6c..733fc9f 100644 --- a/lib/models/guild.ml +++ b/lib/models/guild.ml @@ -47,7 +47,7 @@ module Make(Http : S.Http) = struct ("type", `Int kind); ]) >>| Result.map ~f:Channel_j.t_of_string - let delete guild = + let delete guild = Http.delete_guild guild.id >>| Result.map ~f:ignore let get_ban ~id guild = @@ -63,8 +63,8 @@ module Make(Http : S.Http) = struct let get_channel ~id guild = match List.find ~f:(fun c -> c.id = id) guild.channels with - | Some c -> Deferred.Or_error.return c - | None -> Http.get_channel id >>| Result.map ~f:Channel_j.t_of_string + | Some c -> Channel_j.(string_of_channel_wrapper c |> t_of_string) |> Deferred.Or_error.return + | None -> Http.get_channel id >>| Result.map ~f:Event.wrap_channel let get_emoji ~id guild = Http.get_emoji guild.id id >>| Result.map ~f:Emoji_j.t_of_string @@ -76,7 +76,7 @@ module Make(Http : S.Http) = struct let get_member ~id guild = match List.find ~f:(fun m -> m.user.id = id) guild.members with | Some m -> Deferred.Or_error.return m - | None -> Http.get_member guild.id id >>| Result.map ~f:Member_j.t_of_string + | None -> Http.get_member guild.id id >>| Result.map ~f:Member_j.member_of_string let get_prune_count ~days guild = Http.guild_prune_count guild.id days >>| Result.map ~f:(fun prune -> |