From 260ccd9960b852b9c69b88e9840d5a8b22bb8e1d Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Wed, 12 Dec 2018 15:00:46 -0700 Subject: Work on event dispatch and add model derives --- lib/sharder.ml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'lib/sharder.ml') diff --git a/lib/sharder.ml b/lib/sharder.ml index 1c26d8c..b1f5d62 100644 --- a/lib/sharder.ml +++ b/lib/sharder.ml @@ -34,7 +34,7 @@ module Make(H: S.Http) = struct | `Ok s -> begin let open Frame.Opcode in match s.opcode with - | Text -> Some (Yojson.Basic.from_string s.content) + | Text -> Some (Yojson.Safe.from_string s.content) | _ -> None end | `Eof -> None @@ -44,7 +44,7 @@ module Make(H: S.Http) = struct let content = match payload with | None -> "" | Some p -> - Yojson.Basic.to_string @@ `Assoc [ + Yojson.Safe.to_string @@ `Assoc [ ("op", `Int (Opcode.to_int ev)); ("d", p); ] @@ -62,7 +62,7 @@ module Make(H: S.Http) = struct push_frame ~payload ~ev:HEARTBEAT shard let dispatch ~payload shard = - let module J = Yojson.Basic.Util in + let module J = Yojson.Safe.Util in let seq = J.(member "s" payload |> to_int) in let t = J.(member "t" payload |> to_string) in let data = J.member "d" payload in @@ -75,7 +75,7 @@ module Make(H: S.Http) = struct session = session; } - let set_status ~(status:Yojson.Basic.json) shard = + let set_status ~(status:Yojson.Safe.json) shard = let payload = match status with | `Assoc [("name", `String name); ("type", `Int t)] -> `Assoc [ @@ -112,7 +112,7 @@ module Make(H: S.Http) = struct push_frame ~payload ~ev:REQUEST_GUILD_MEMBERS shard let initialize ?data shard = - let module J = Yojson.Basic.Util in + let module J = Yojson.Safe.Util in let hb = match shard.hb with | None -> begin match data with @@ -168,7 +168,7 @@ module Make(H: S.Http) = struct push_frame ~payload ~ev:RESUME shard let handle_frame ~f shard = - let module J = Yojson.Basic.Util in + let module J = Yojson.Safe.Util in let op = J.(member "op" f |> to_int) |> Opcode.from_int in @@ -285,7 +285,7 @@ module Make(H: S.Http) = struct } let start ?count () = - let module J = Yojson.Basic.Util in + let module J = Yojson.Safe.Util in H.get_gateway_bot () >>= fun data -> let url = J.(member "url" data |> to_string) in let count = match count with -- cgit v1.2.3 From c046760eb599e42226c683aecbe33753dfc4d500 Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Wed, 12 Dec 2018 15:23:14 -0700 Subject: Complete event dispatch --- lib/sharder.ml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'lib/sharder.ml') diff --git a/lib/sharder.ml b/lib/sharder.ml index b1f5d62..e28a306 100644 --- a/lib/sharder.ml +++ b/lib/sharder.ml @@ -1,4 +1,4 @@ -module Make(H: S.Http) = struct +module Make(H: S.Http)(D : S.Dispatch) = struct open Async open Core open Websocket_async @@ -68,8 +68,9 @@ module Make(H: S.Http) = struct let data = J.member "d" payload in let session = J.(member "session_id" data |> to_string_option) in if t = "READY" then begin - Ivar.fill_if_empty shard.ready (); + Ivar.fill_if_empty shard.ready () end; + D.dispatch ~ev:t data; return { shard with seq = seq; session = session; -- cgit v1.2.3 From 31fe810ad9679df6a5f83071717c94315058bfd4 Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Wed, 12 Dec 2018 15:54:59 -0700 Subject: Fix Sharder.Make sig --- lib/sharder.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/sharder.ml') diff --git a/lib/sharder.ml b/lib/sharder.ml index e28a306..6ac8584 100644 --- a/lib/sharder.ml +++ b/lib/sharder.ml @@ -1,4 +1,4 @@ -module Make(H: S.Http)(D : S.Dispatch) = struct +module Make(H : S.Http)(D : S.Dispatch) : S.Sharder = struct open Async open Core open Websocket_async -- cgit v1.2.3