package dberr import ( "errors" "github.com/jackc/pgx/v5" "github.com/jackc/pgx/v5/pgconn" ) const ( SysUserAccountKey = "sys_users_account_key" SysRoleCodeKey = "sys_roles_code_key" PostSlugKey = "posts_slug_key" SysPermissionsCodeKey = "sys_permissions_code_key" SysApisMethodPathKey = "sys_apis_method_path_key" CategoryCodeKey = "categories_code_key" TagCodeKey = "tags_code_key" SysMenusPathUniqueIdx = "sys_menus_path_unique_idx" ) func MapRowsAffected(rows int64, err error, notFoundErr error) error { if err != nil { return err } if rows == 0 { return notFoundErr } return nil } func MapNoRows(err error, notFoundErr error) error { if errors.Is(err, pgx.ErrNoRows) { return notFoundErr } return err } func MapUniqueViolation(err error, constraint string, uniqueErr error) error { if err == nil { return nil } var pgErr *pgconn.PgError if errors.As(err, &pgErr) && pgErr.Code == "23505" && pgErr.ConstraintName == constraint { return uniqueErr } return err }