diff options
| author | Adelyn Breedlove <[email protected]> | 2018-12-21 16:22:49 +0000 |
|---|---|---|
| committer | Adelyn Breedlove <[email protected]> | 2018-12-21 16:22:49 +0000 |
| commit | c23f6b323a7231cd2caee6520dc709799508c87e (patch) | |
| tree | 4c238d53d2cbd9362f04044351582dd5f5e56d79 /lib/http.ml | |
| parent | Merge branch 'dev' into 'master' (diff) | |
| parent | Update README (diff) | |
| download | disml-c23f6b323a7231cd2caee6520dc709799508c87e.tar.xz disml-c23f6b323a7231cd2caee6520dc709799508c87e.zip | |
Merge branch 'dev' into 'master'
Merge work from dev
See merge request Mishio595/disml!11
Diffstat (limited to 'lib/http.ml')
| -rw-r--r-- | lib/http.ml | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/lib/http.ml b/lib/http.ml index 810bdc3..f04a49f 100644 --- a/lib/http.ml +++ b/lib/http.ml @@ -1,4 +1,5 @@ module Make(T : S.Token) = struct + open Core open Async open Cohttp include T @@ -33,7 +34,12 @@ module Make(T : S.Token) = struct | Some r -> Mvar.put (Rl.find_exn !rl path) r | None -> raise Bad_response_headers) >>= fun () -> - body |> Cohttp_async.Body.to_string >>| Yojson.Safe.from_string + match resp |> Response.status |> Code.code_of_status with + | 200 -> body |> Cohttp_async.Body.to_string >>= Deferred.Or_error.return + | code -> + body |> Cohttp_async.Body.to_string >>= fun body -> + Deferred.Or_error.errorf "Unsuccessful response received: %d - %s" code body + let request ?(body=`Null) m path = rl := Rl.update ~f:(function @@ -76,8 +82,8 @@ module Make(T : S.Token) = struct let delete_channel channel_id = Base.request `DELETE (Endpoints.channel channel_id) - let get_messages channel_id = - Base.request `GET (Endpoints.channel_messages channel_id) + let get_messages channel_id limit (kind, id) = + Base.request `GET (Printf.sprintf "%s?%s=%d&limit=%d" (Endpoints.channel_messages channel_id) kind id limit) let get_message channel_id message_id = Base.request `GET (Endpoints.channel_message channel_id message_id) @@ -187,8 +193,8 @@ module Make(T : S.Token) = struct let edit_member guild_id user_id body = Base.request ~body `PATCH (Endpoints.guild_member guild_id user_id) - let remove_member guild_id user_id = - Base.request `DELETE (Endpoints.guild_member guild_id user_id) + let remove_member guild_id user_id body = + Base.request ~body `DELETE (Endpoints.guild_member guild_id user_id) let change_nickname guild_id body = Base.request ~body `PATCH (Endpoints.guild_me_nick guild_id) @@ -208,8 +214,8 @@ module Make(T : S.Token) = struct let guild_ban_add guild_id user_id body = Base.request ~body `PUT (Endpoints.guild_ban guild_id user_id) - let guild_ban_remove guild_id user_id = - Base.request `DELETE (Endpoints.guild_ban guild_id user_id) + let guild_ban_remove guild_id user_id body = + Base.request ~body `DELETE (Endpoints.guild_ban guild_id user_id) let get_roles guild_id = Base.request `GET (Endpoints.guild_roles guild_id) @@ -226,11 +232,11 @@ module Make(T : S.Token) = struct let guild_role_remove guild_id role_id = Base.request `DELETE (Endpoints.guild_role guild_id role_id) - let guild_prune_count guild_id = - Base.request `GET (Endpoints.guild_prune guild_id) + let guild_prune_count guild_id days = + Base.request `GET ((Endpoints.guild_prune guild_id) ^ "?days=" ^ Int.to_string days) - let guild_prune_start guild_id body = - Base.request ~body `POST (Endpoints.guild_prune guild_id) + let guild_prune_start guild_id days = + Base.request `POST ((Endpoints.guild_prune guild_id) ^ "?days=" ^ Int.to_string days) let get_guild_voice_regions guild_id = Base.request `GET (Endpoints.guild_voice_regions guild_id) |