Updated send function: RequestAsync, asserting success of the request

This commit is contained in:
Violet Millie 2020-11-01 18:04:56 +00:00
parent 64d9cc18ac
commit 4a6d82ceeb
1 changed files with 37 additions and 11 deletions

View File

@ -6,16 +6,18 @@ local httpService = game:GetService("HttpService")
local RoHook = {}
RoHook.__index = RoHook
function RoHook.create(url, username, avatar)
local hook = {}
function RoHook.new(url, username, avatar)
assert(url, "URL cannot be nil.")
local self = {
url = url,
username = username,
avatarUrl = avatar
}
setmetatable(hook, RoHook)
setmetatable(self, RoHook)
hook.avatarUrl = avatar or ""
hook.username = username or ""
hook.url = url
return hook
return self
end
function RoHook:setUsername()
@ -25,14 +27,38 @@ end
function RoHook:setAvatar(url)
end
function RoHook.send(data)
function RoHook:send(data)
local request = nil
if data.ClassName == "RichEmbed" then
print("RichEmbed")
request = {
embeds = {data},
}
print("Sending RichEmbed")
elseif data.ClassName == "Message" then
print("Message")
print("Sending Message")
end
local success, res = pcall(function()
local response = httpService:RequestAsync({
Url = self.url,
Method = "POST",
Headers = {
["Content-Type"] = "application/json"
},
Body = httpService:JSONEncode(request)
})
return response
end)
if not success then
error(string.format("POST request failed: %s", res))
else
assert(res.Success, string.format("Server replied with %s - %s", res.StatusCode, res.StatusMessage))
end
end