fix: add error logging to discount campaign payment/times_redeemed execs

This commit is contained in:
2026-07-11 14:37:47 +01:00
parent 7a51bcc49a
commit 9f9f0eed98
+40 -30
View File
@@ -1123,15 +1123,17 @@ func applyEligibleCampaignsAtPayment(ctx context.Context, q db.Querier, bookingI
`, bookingID, userID, campaignID, campaignPercent, bookingTotal, discountAmount); err != nil { `, bookingID, userID, campaignID, campaignPercent, bookingTotal, discountAmount); err != nil {
log.Printf("Failed to insert time-based campaign discount: %v", err) log.Printf("Failed to insert time-based campaign discount: %v", err)
} else { } else {
//nolint:errcheck // exec errors are non-critical; best-effort inserts/updates if _, err := q.Exec(ctx, `
_, _ = q.Exec(ctx, `
INSERT INTO payments (booking_id, payment_type, payment_method, amount, status, created_by) INSERT INTO payments (booking_id, payment_type, payment_method, amount, status, created_by)
VALUES ($1, 'partial', 'discount', $2, 'completed', $3) VALUES ($1, 'partial', 'discount', $2, 'completed', $3)
`, bookingID, discountAmount, userID) `, bookingID, discountAmount, userID); err != nil {
//nolint:errcheck // exec errors are non-critical; best-effort inserts/updates log.Printf("ALERT: failed to insert discount payment record for campaign %s, booking %s: %v", campaignID, bookingID, err)
_, _ = q.Exec(ctx, ` }
if _, err := q.Exec(ctx, `
UPDATE discount_campaigns SET times_redeemed = times_redeemed + 1 WHERE id = $1 UPDATE discount_campaigns SET times_redeemed = times_redeemed + 1 WHERE id = $1
`, campaignID) `, campaignID); err != nil {
log.Printf("ALERT: failed to increment times_redeemed for campaign %s, booking %s: %v", campaignID, bookingID, err)
}
} }
} }
} }
@@ -1163,15 +1165,17 @@ func applyEligibleCampaignsAtPayment(ctx context.Context, q db.Querier, bookingI
`, bookingID, userID, milestoneCampaignID, milestonePercent, bookingTotal, discountAmount); err != nil { `, bookingID, userID, milestoneCampaignID, milestonePercent, bookingTotal, discountAmount); err != nil {
log.Printf("Failed to insert per-user milestone discount: %v", err) log.Printf("Failed to insert per-user milestone discount: %v", err)
} else { } else {
//nolint:errcheck // exec errors are non-critical; best-effort inserts/updates if _, err := q.Exec(ctx, `
_, _ = q.Exec(ctx, `
INSERT INTO payments (booking_id, payment_type, payment_method, amount, status, created_by) INSERT INTO payments (booking_id, payment_type, payment_method, amount, status, created_by)
VALUES ($1, 'partial', 'discount', $2, 'completed', $3) VALUES ($1, 'partial', 'discount', $2, 'completed', $3)
`, bookingID, discountAmount, userID) `, bookingID, discountAmount, userID); err != nil {
//nolint:errcheck // exec errors are non-critical; best-effort inserts/updates log.Printf("ALERT: failed to insert discount payment record for campaign %s, booking %s: %v", milestoneCampaignID, bookingID, err)
_, _ = q.Exec(ctx, ` }
if _, err := q.Exec(ctx, `
UPDATE discount_campaigns SET times_redeemed = times_redeemed + 1 WHERE id = $1 UPDATE discount_campaigns SET times_redeemed = times_redeemed + 1 WHERE id = $1
`, milestoneCampaignID) `, milestoneCampaignID); err != nil {
log.Printf("ALERT: failed to increment times_redeemed for campaign %s, booking %s: %v", milestoneCampaignID, bookingID, err)
}
} }
} }
} }
@@ -1227,15 +1231,17 @@ func applyEligibleCampaignsAtPayment(ctx context.Context, q db.Querier, bookingI
`, bookingID, userID, c.id, c.pct, bookingTotal, discountAmount); err != nil { `, bookingID, userID, c.id, c.pct, bookingTotal, discountAmount); err != nil {
log.Printf("Failed to insert anniversary discount: %v", err) log.Printf("Failed to insert anniversary discount: %v", err)
} else { } else {
//nolint:errcheck // exec errors are non-critical; best-effort inserts/updates if _, err := q.Exec(ctx, `
_, _ = q.Exec(ctx, `
INSERT INTO payments (booking_id, payment_type, payment_method, amount, status, created_by) INSERT INTO payments (booking_id, payment_type, payment_method, amount, status, created_by)
VALUES ($1, 'partial', 'discount', $2, 'completed', $3) VALUES ($1, 'partial', 'discount', $2, 'completed', $3)
`, bookingID, discountAmount, userID) `, bookingID, discountAmount, userID); err != nil {
//nolint:errcheck // exec errors are non-critical; best-effort inserts/updates log.Printf("ALERT: failed to insert discount payment record for campaign %s, booking %s: %v", c.id, bookingID, err)
_, _ = q.Exec(ctx, ` }
if _, err := q.Exec(ctx, `
UPDATE discount_campaigns SET times_redeemed = times_redeemed + 1 WHERE id = $1 UPDATE discount_campaigns SET times_redeemed = times_redeemed + 1 WHERE id = $1
`, c.id) `, c.id); err != nil {
log.Printf("ALERT: failed to increment times_redeemed for campaign %s, booking %s: %v", c.id, bookingID, err)
}
} }
break break
} }
@@ -1278,15 +1284,17 @@ func applyEligibleCampaignsAtPayment(ctx context.Context, q db.Querier, bookingI
`, bookingID, userID, globalCampaignID, globalPercent, bookingTotal, discountAmount); err != nil { `, bookingID, userID, globalCampaignID, globalPercent, bookingTotal, discountAmount); err != nil {
log.Printf("Failed to insert global milestone discount: %v", err) log.Printf("Failed to insert global milestone discount: %v", err)
} else { } else {
//nolint:errcheck // exec errors are non-critical; best-effort inserts/updates if _, err := q.Exec(ctx, `
_, _ = q.Exec(ctx, `
INSERT INTO payments (booking_id, payment_type, payment_method, amount, status, created_by) INSERT INTO payments (booking_id, payment_type, payment_method, amount, status, created_by)
VALUES ($1, 'partial', 'discount', $2, 'completed', $3) VALUES ($1, 'partial', 'discount', $2, 'completed', $3)
`, bookingID, discountAmount, userID) `, bookingID, discountAmount, userID); err != nil {
//nolint:errcheck // exec errors are non-critical; best-effort inserts/updates log.Printf("ALERT: failed to insert discount payment record for campaign %s, booking %s: %v", globalCampaignID, bookingID, err)
_, _ = q.Exec(ctx, ` }
if _, err := q.Exec(ctx, `
UPDATE discount_campaigns SET times_redeemed = times_redeemed + 1 WHERE id = $1 UPDATE discount_campaigns SET times_redeemed = times_redeemed + 1 WHERE id = $1
`, globalCampaignID) `, globalCampaignID); err != nil {
log.Printf("ALERT: failed to increment times_redeemed for campaign %s, booking %s: %v", globalCampaignID, bookingID, err)
}
} }
} }
} }
@@ -1310,15 +1318,17 @@ func applyEligibleCampaignsAtPayment(ctx context.Context, q db.Querier, bookingI
INSERT INTO booking_discounts (booking_id, user_id, discount_source, source_id, campaign_type, milestone_type, discount_percent, original_total, discount_amount) INSERT INTO booking_discounts (booking_id, user_id, discount_source, source_id, campaign_type, milestone_type, discount_percent, original_total, discount_amount)
VALUES ($1, $2, 'referral', $3, NULL, NULL, $4, $5, $6) VALUES ($1, $2, 'referral', $3, NULL, NULL, $4, $5, $6)
`, bookingID, userID, rdID, rdPercent, bookingTotal, discountAmount); err == nil { `, bookingID, userID, rdID, rdPercent, bookingTotal, discountAmount); err == nil {
//nolint:errcheck // exec errors are non-critical; best-effort inserts/updates if _, err := q.Exec(ctx, `
_, _ = q.Exec(ctx, `
INSERT INTO payments (booking_id, payment_type, payment_method, amount, status, created_by) INSERT INTO payments (booking_id, payment_type, payment_method, amount, status, created_by)
VALUES ($1, 'partial', 'discount', $2, 'completed', $3) VALUES ($1, 'partial', 'discount', $2, 'completed', $3)
`, bookingID, discountAmount, userID) `, bookingID, discountAmount, userID); err != nil {
//nolint:errcheck // exec errors are non-critical; best-effort inserts/updates log.Printf("ALERT: failed to insert discount payment record for campaign %s, booking %s: %v", rdID, bookingID, err)
_, _ = q.Exec(ctx, ` }
if _, err := q.Exec(ctx, `
UPDATE referral_discounts SET used = TRUE, used_at = NOW() WHERE id = $1 UPDATE referral_discounts SET used = TRUE, used_at = NOW() WHERE id = $1
`, rdID) `, rdID); err != nil {
log.Printf("ALERT: failed to mark referral discount as used, booking %s: %v", bookingID, err)
}
} }
} }
} }