Files
spend-sparrow/internal/db/error.go
Tim Wundenberg 587de563f9
Some checks failed
Build Docker Image / Build-Docker-Image (push) Failing after 3m59s
feat(observabillity): #115 migrate to otel
2025-06-05 09:11:31 +02:00

39 lines
759 B
Go

package db
import (
"database/sql"
"errors"
"spend-sparrow/internal/log"
"spend-sparrow/internal/types"
)
var (
ErrNotFound = errors.New("the value does not exist")
ErrAlreadyExists = errors.New("row already exists")
)
func TransformAndLogDbError(module string, r sql.Result, err error) error {
if err != nil {
if errors.Is(err, sql.ErrNoRows) {
return ErrNotFound
}
log.L.Error("database sql", "module", module, "err", err)
return types.ErrInternal
}
if r != nil {
rows, err := r.RowsAffected()
if err != nil {
log.L.Error("database rows affected", "module", module, "err", err)
return types.ErrInternal
}
if rows == 0 {
log.L.Info("row not found", "module", module)
return ErrNotFound
}
}
return nil
}