nidus-sync/lint/error.go
Eli Ribble c83606908f
lint: fix errcheck in api/api.go debug log writes
Add lint.Fprintf and lint.Write helpers for safe writer operations.
Use lint.Fprintf for unchecked fmt.Fprintf calls in webhookFieldseeker.
2026-05-09 02:05:40 +00:00

53 lines
1.1 KiB
Go

package lint
import (
"context"
"fmt"
"io"
"github.com/rs/zerolog/log"
)
type Errorable = func() error
func LogOnErr(f Errorable, msg string) {
e := f()
if e != nil {
log.Error().Err(e).Msg(msg)
}
}
type ErrorableCtx = func(context.Context) error
func LogOnErrCtx(f ErrorableCtx, ctx context.Context, msg string) {
e := f(ctx)
if e != nil {
log.Error().Err(e).Msg(msg)
}
}
func LogOnErrRollback(f ErrorableCtx, ctx context.Context, msg string) {
e := f(ctx)
if e != nil {
// We're fine with rollbacks that are already properly closed
if e.Error() == "sql: transaction has already been committed or rolled back" {
return
}
log.Error().Err(e).Msg(msg)
}
}
// Fprintf writes a formatted string to w, logging any error.
func Fprintf(w io.Writer, format string, args ...any) {
_, err := fmt.Fprintf(w, format, args...)
if err != nil {
log.Error().Err(err).Msg("fprintf failed")
}
}
// Write writes p to w, logging any error.
func Write(w io.Writer, p []byte) {
_, err := w.Write(p)
if err != nil {
log.Error().Err(err).Msg("write failed")
}
}