fix: validate platform schedule update target
PR Checks / test-and-build (pull_request) Successful in 13m7s
PR Checks / test-and-build (pull_request) Successful in 13m7s
This commit is contained in:
@@ -59,16 +59,24 @@ public sealed class TelegramPlatformMessenger(
|
||||
public async Task UpdateScheduleAsync(PlatformScheduleMessage message, CancellationToken ct)
|
||||
{
|
||||
EnsureTelegram(message.Group.Platform);
|
||||
if (message.ExistingMessage is null)
|
||||
var existingMessage = message.ExistingMessage;
|
||||
if (existingMessage is null)
|
||||
{
|
||||
throw new ArgumentException("Existing schedule message reference is required.", nameof(message));
|
||||
}
|
||||
|
||||
EnsureTelegram(existingMessage.Platform);
|
||||
if (!string.Equals(message.Group.ExternalGroupId, existingMessage.ExternalGroupId, StringComparison.Ordinal) ||
|
||||
!string.Equals(message.Group.ExternalThreadId, existingMessage.ExternalThreadId, StringComparison.Ordinal))
|
||||
{
|
||||
throw new ArgumentException("Existing schedule message reference must match the schedule group.", nameof(message));
|
||||
}
|
||||
|
||||
var renderResult = TelegramSessionBatchRenderer.Render(message.View);
|
||||
await BatchMessageEditor.EditBatchMessageAsync(
|
||||
bot,
|
||||
chatId: ParseLong(message.Group.ExternalGroupId),
|
||||
messageId: ParseInt(message.ExistingMessage.ExternalMessageId),
|
||||
chatId: ParseLong(existingMessage.ExternalGroupId),
|
||||
messageId: ParseInt(existingMessage.ExternalMessageId),
|
||||
text: renderResult.Text,
|
||||
replyMarkup: renderResult.Markup,
|
||||
ct);
|
||||
|
||||
Reference in New Issue
Block a user