From b9ee77f8153090e9d47e73ab195540d10720c7b6 Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Thu, 10 Jan 2019 13:12:49 -0700 Subject: AAAAAAAAAAAAAAAAAAAAAAAA --- lib/models/channel.ml | 38 ++++++++++++-------------------------- 1 file changed, 12 insertions(+), 26 deletions(-) (limited to 'lib/models/channel.ml') diff --git a/lib/models/channel.ml b/lib/models/channel.ml index 15202b1..3fab452 100644 --- a/lib/models/channel.ml +++ b/lib/models/channel.ml @@ -1,22 +1,14 @@ -exception Invalid_message -exception No_message_found - -let get_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 Async open Core + include Channel_t - type t = Channel_t.t - + exception Invalid_message + exception No_message_found + let say ~content ch = Http.create_message (get_id ch) (`Assoc [("content", `String content)]) - >>| Result.map ~f:Message_j.t_of_string + >>| Result.map ~f:Message_t.of_yojson_exn let send_message ?embed ?content ?file ?(tts=false) ch = let embed = match embed with @@ -36,13 +28,13 @@ module Make(Http : S.Http) = struct ("content", content); ("file", file); ("tts", `Bool tts); - ]) >>| Result.map ~f:Message_j.t_of_string + ]) >>| Result.map ~f:Message_t.of_yojson_exn let delete ch = Http.delete_channel (get_id ch) >>| Result.map ~f:ignore let get_message ~id ch = - Http.get_message (get_id ch) id >>| Result.map ~f:Message_j.t_of_string + Http.get_message (get_id ch) id >>| Result.map ~f:Message_t.of_yojson_exn let get_messages ?(mode=`Around) ?id ?(limit=50) ch = let kind = match mode with @@ -54,20 +46,14 @@ module Make(Http : S.Http) = struct | Some id -> id | None -> raise No_message_found in Http.get_messages (get_id ch) id kind >>| Result.map ~f:(fun l -> - Yojson.Safe.(from_string l - |> Util.to_list) - |> List.map ~f:(fun i -> - Yojson.Safe.to_string i - |> Message_j.t_of_string)) - + Yojson.Safe.Util.to_list l + |> List.map ~f:Message_t.of_yojson_exn) + let broadcast_typing ch = Http.broadcast_typing (get_id ch) >>| Result.map ~f:ignore let get_pins ch = Http.get_pinned_messages (get_id ch) >>| Result.map ~f:(fun l -> - Yojson.Safe.(from_string l - |> Util.to_list) - |> List.map ~f:(fun i -> - Yojson.Safe.to_string i - |> Message_j.t_of_string)) + Yojson.Safe.Util.to_list l + |> List.map ~f:Message_t.of_yojson_exn) end \ No newline at end of file -- cgit v1.2.3