Files
vppn/hub/errs/db.go
2026-06-13 14:46:55 +02:00

34 lines
504 B
Go

package errs
import (
"database/sql"
"errors"
"log"
sqlite3 "github.com/mattn/go-sqlite3"
)
func DB(err error) error {
if err == nil {
return nil
}
if _, ok := err.(*Error); ok {
return err
}
if err == sql.ErrNoRows {
return ErrNotFound
}
var se sqlite3.Error
if errors.As(err, &se) {
switch se.ExtendedCode {
case sqlite3.ErrConstraintUnique, sqlite3.ErrConstraintPrimaryKey:
return ErrAlreadyExists
}
}
log.Printf("Unexpected error: %v", err)
return ErrUnexpected
}