Added SendChannelMessage

This commit is contained in:
Sarah Faey 2022-11-14 09:25:52 +01:00
parent e9b353527f
commit 17dceda408

View file

@ -147,12 +147,23 @@ namespace Lieb.Data
} }
public async Task SendChannelReminder(RaidReminder reminder) public async Task SendChannelReminder(RaidReminder reminder)
{
if (await SendChannelMessage(reminder.DiscordServerId, reminder.DiscordChannelId, reminder.Message))
{
reminder.Sent = true;
using var context = _contextFactory.CreateDbContext();
context.Update(reminder);
await context.SaveChangesAsync();
}
}
public async Task<bool> SendChannelMessage(ulong discordServerId, ulong discordChannelId, string message)
{ {
try try
{ {
var httpClient = _httpClientFactory.CreateClient(Constants.HttpClientName); var httpClient = _httpClientFactory.CreateClient(Constants.HttpClientName);
ApiChannelReminder apiReminder = ConvertChannelReminder(reminder); ApiChannelReminder apiReminder = ConvertChannelReminder(discordServerId, discordChannelId, message);
var raidItemJson = new StringContent( var raidItemJson = new StringContent(
JsonSerializer.Serialize(apiReminder), JsonSerializer.Serialize(apiReminder),
@ -161,15 +172,10 @@ namespace Lieb.Data
var httpResponseMessage = await httpClient.PostAsync("raid/SendChannelReminder", raidItemJson); var httpResponseMessage = await httpClient.PostAsync("raid/SendChannelReminder", raidItemJson);
if (httpResponseMessage.IsSuccessStatusCode) return httpResponseMessage.IsSuccessStatusCode;
{
reminder.Sent = true;
using var context = _contextFactory.CreateDbContext();
context.Update(reminder);
await context.SaveChangesAsync();
}
} }
catch {} catch {}
return false;
} }
private async Task UpdateDiscordMessages(IEnumerable<ApiRaid.DiscordMessage> messages, Raid raid) private async Task UpdateDiscordMessages(IEnumerable<ApiRaid.DiscordMessage> messages, Raid raid)
@ -275,13 +281,13 @@ namespace Lieb.Data
return apiReminder; return apiReminder;
} }
private ApiChannelReminder ConvertChannelReminder(RaidReminder reminder) private ApiChannelReminder ConvertChannelReminder(ulong discordServerId, ulong discordChannelId, string message)
{ {
return new ApiChannelReminder() return new ApiChannelReminder()
{ {
DiscordServerId = reminder.DiscordServerId, DiscordServerId = discordServerId,
DiscordChannelId = reminder.DiscordChannelId, DiscordChannelId = discordChannelId,
Message = reminder.Message Message = message
}; };
} }
} }