feat(webhooks): verify that url is accessible before saving it

This commit is contained in:
spiral 2021-11-25 16:45:00 -05:00
parent 0a244eb9b5
commit ece17f7470
No known key found for this signature in database
GPG key ID: A6059F0CA0E1BD31
2 changed files with 15 additions and 2 deletions

View file

@ -1,3 +1,4 @@
using System;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
@ -126,6 +127,15 @@ namespace PluralKit.Bot
if (_webhookRegex.IsMatch(newUrl))
throw new PKError("PluralKit does not currently support setting a Discord webhook URL as your system's webhook URL.");
try
{
await _dispatch.DoPostRequest(ctx.System.Id, newUrl, null, true);
}
catch (Exception e)
{
throw new PKError($"Could not verify that the new URL is working: {e.Message}");
}
var newToken = StringUtils.GenerateToken();
await _repo.UpdateSystem(ctx.System.Id, new()