using EliteBGS.Util;
using System;
using System.Text;
using System.Net.Http;
using System.Text.Json.Nodes;

namespace EliteBGS;

public class DiscordPoster {
    public static readonly int DiscordLimit = 2000;

    public static void PostToDiscord(DiscordWebhook webhook, string log, string username = "EDBGS") {
        JsonObject obj = new();
        obj.Add("content", log);
        obj.Add("username", username);

        using (var client = new HttpClient()) {
            var content = new StringContent(obj.ToString(), Encoding.UTF8, "application/json");
            var response = client.PostAsync(webhook.Webhook, content);
            if (response == null) {
                throw new Exception("failed to post content to Discord webhook");
            }
            response.Wait();
            var resp = response.Result;
            if (!resp.IsSuccessStatusCode) {
                throw new Exception(string.Format(
                    "failed to post content to webhook {0}: {1} / {2}",
                    webhook.Name, resp.StatusCode, resp.Content.ToString()));
            }
        }
    }
}
