fix: validate platform schedule update target
PR Checks / test-and-build (pull_request) Successful in 13m7s

This commit is contained in:
2026-05-15 18:31:17 +03:00
parent 5931099c14
commit 18e702cd04
2 changed files with 55 additions and 3 deletions
@@ -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);