fix(main,channels,webhooks): handle RowsAffected errors in background paths #1908
@@ -149,8 +149,13 @@ func main() {
|
||||
result, err := db.DB.ExecContext(ctx, `DELETE FROM activity_logs WHERE created_at < now() - ($1 || ' days')::interval`, retentionDays)
|
||||
if err != nil {
|
||||
log.Printf("Activity log cleanup error: %v", err)
|
||||
} else if n, _ := result.RowsAffected(); n > 0 {
|
||||
log.Printf("Activity log cleanup: purged %d old entries", n)
|
||||
} else {
|
||||
n, err := result.RowsAffected()
|
||||
if err != nil {
|
||||
log.Printf("Activity log cleanup RowsAffected error: %v", err)
|
||||
} else if n > 0 {
|
||||
log.Printf("Activity log cleanup: purged %d old entries", n)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,7 +82,10 @@ func NewManager(proxy A2AProxy, broadcaster Broadcaster) *Manager {
|
||||
log.Printf("Channels: failed to disable telegram chat_id=%s: %v", chatID, err)
|
||||
return
|
||||
}
|
||||
if rows, _ := res.RowsAffected(); rows > 0 {
|
||||
rows, err := res.RowsAffected()
|
||||
if err != nil {
|
||||
log.Printf("Channels: disable telegram RowsAffected error chat_id=%s: %v", chatID, err)
|
||||
} else if rows > 0 {
|
||||
log.Printf("Channels: disabled %d telegram channel(s) for chat_id=%s (bot removed)", rows, chatID)
|
||||
// Reload so the in-memory poller map drops the now-disabled row.
|
||||
m.Reload(ctx)
|
||||
|
||||
@@ -394,9 +394,13 @@ func (h *WebhookHandler) handleCronTriggerEvent(c *gin.Context, eventType string
|
||||
log.Printf("Webhook: cron trigger (issues/opened) DB error: %v", err)
|
||||
return true, fmt.Errorf("failed to trigger schedules: %w", err)
|
||||
}
|
||||
affected, _ := result.RowsAffected()
|
||||
log.Printf("Webhook: issues/opened in %s #%d by %s — triggered %d pick-up-work schedule(s)",
|
||||
payload.Repository.FullName, payload.Issue.Number, payload.Sender.Login, affected)
|
||||
affected, err := result.RowsAffected()
|
||||
if err != nil {
|
||||
log.Printf("Webhook: issues/opened RowsAffected error: %v", err)
|
||||
} else {
|
||||
log.Printf("Webhook: issues/opened in %s #%d by %s — triggered %d pick-up-work schedule(s)",
|
||||
payload.Repository.FullName, payload.Issue.Number, payload.Sender.Login, affected)
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"status": "triggered",
|
||||
@@ -429,9 +433,13 @@ func (h *WebhookHandler) handleCronTriggerEvent(c *gin.Context, eventType string
|
||||
log.Printf("Webhook: cron trigger (pull_request_review/submitted) DB error: %v", err)
|
||||
return true, fmt.Errorf("failed to trigger schedules: %w", err)
|
||||
}
|
||||
affected, _ := result.RowsAffected()
|
||||
log.Printf("Webhook: pull_request_review/submitted in %s PR #%d by %s (state=%s) — triggered %d review schedule(s)",
|
||||
payload.Repository.FullName, payload.PullRequest.Number, payload.Sender.Login, payload.Review.State, affected)
|
||||
affected, err := result.RowsAffected()
|
||||
if err != nil {
|
||||
log.Printf("Webhook: pull_request_review/submitted RowsAffected error: %v", err)
|
||||
} else {
|
||||
log.Printf("Webhook: pull_request_review/submitted in %s PR #%d by %s (state=%s) — triggered %d review schedule(s)",
|
||||
payload.Repository.FullName, payload.PullRequest.Number, payload.Sender.Login, payload.Review.State, affected)
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"status": "triggered",
|
||||
|
||||
Reference in New Issue
Block a user