fix(telegram): error handling for sendWithAttachments
This commit is contained in:
parent
6e697f35a6
commit
f5ca5d2e6c
1 changed files with 32 additions and 18 deletions
|
|
@ -215,7 +215,12 @@ func (c *TelegramChannel) sendWithAttachments(ctx context.Context, chatID int64,
|
||||||
})
|
})
|
||||||
tgMsg.ParseMode = ""
|
tgMsg.ParseMode = ""
|
||||||
tgMsg.Text = content
|
tgMsg.Text = content
|
||||||
c.bot.SendMessage(ctx, tgMsg)
|
if _, err = c.bot.SendMessage(ctx, tgMsg); err != nil {
|
||||||
|
logger.ErrorCF("telegram", "Failed to send message with attachments", map[string]interface{}{
|
||||||
|
"error": err.Error(),
|
||||||
|
})
|
||||||
|
return fmt.Errorf("failed to send message: %w", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -228,29 +233,38 @@ func (c *TelegramChannel) sendWithAttachments(ctx context.Context, chatID int64,
|
||||||
})
|
})
|
||||||
tgMsg.ParseMode = ""
|
tgMsg.ParseMode = ""
|
||||||
tgMsg.Text = content
|
tgMsg.Text = content
|
||||||
c.bot.SendMessage(ctx, tgMsg)
|
if _, err = c.bot.SendMessage(ctx, tgMsg); err != nil {
|
||||||
|
logger.ErrorCF("telegram", "Failed to send message with attachments", map[string]interface{}{
|
||||||
|
"error": err.Error(),
|
||||||
|
})
|
||||||
|
return fmt.Errorf("failed to send message: %w", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now send files as separate messages
|
// Now send files as separate messages
|
||||||
for _, attachment := range attachments {
|
for _, attachment := range attachments {
|
||||||
file, err := os.Open(attachment.Path)
|
uploadErr := func(att bus.Attachment) error {
|
||||||
if err != nil {
|
file, err := os.Open(att.Path)
|
||||||
return fmt.Errorf("failed to open attachment %s: %w", attachment.Path, err)
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to open attachment %s: %w", att.Path, err)
|
||||||
|
}
|
||||||
|
defer file.Close()
|
||||||
|
|
||||||
|
document := tu.Document(
|
||||||
|
tu.ID(chatID),
|
||||||
|
tu.File(file),
|
||||||
|
)
|
||||||
|
document.Caption = att.Filename
|
||||||
|
|
||||||
|
if _, err := c.bot.SendDocument(ctx, document); err != nil {
|
||||||
|
return fmt.Errorf("failed to send document %s: %w", att.Filename, err)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}(attachment)
|
||||||
|
if uploadErr != nil {
|
||||||
|
return uploadErr
|
||||||
}
|
}
|
||||||
|
|
||||||
document := tu.Document(
|
|
||||||
tu.ID(chatID),
|
|
||||||
tu.File(file),
|
|
||||||
)
|
|
||||||
document.Caption = attachment.Filename
|
|
||||||
|
|
||||||
if _, err := c.bot.SendDocument(ctx, document); err != nil {
|
|
||||||
file.Close()
|
|
||||||
return fmt.Errorf("failed to send document %s: %w", attachment.Filename, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
file.Close()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue