models switch to using errors.Is(err, util.ErrNotExist)

This commit is contained in:
limiting-factor 2026-05-25 11:07:32 +02:00
parent 39cf80ca4b
commit 4e19e6c84e
No known key found for this signature in database
GPG key ID: FBFC3FECD17D904F
5 changed files with 19 additions and 10 deletions

View file

@ -5,10 +5,12 @@ package forge
import (
"context"
"errors"
"fmt"
"forgejo.org/models/db"
"forgejo.org/modules/keying"
"forgejo.org/modules/util"
"xorm.io/builder"
)
@ -85,7 +87,7 @@ func Equal(a, b *Forge) bool {
func Upsert(ctx context.Context, forge *Forge) (*Forge, error) {
if err := db.WithTx(ctx, func(ctx context.Context) error {
found, err := Get(ctx, FindOptions{URL: &forge.URL})
if err != nil {
if err != nil && !errors.Is(err, util.ErrNotExist) {
return fmt.Errorf("forge Upsert Get: %w", err)
}
if found == nil {
@ -173,7 +175,7 @@ func Get(ctx context.Context, opts FindOptions) (*Forge, error) {
return nil, fmt.Errorf("forge Get Find: %w", err)
}
if len(forges) == 0 {
return nil, nil //nolint:nilnil
return nil, util.ErrNotExist
}
if len(forges) != 1 {
return nil, fmt.Errorf("forge Get expected to find one forge but found %d instead", len(forges))

View file

@ -7,6 +7,7 @@ import (
"testing"
"forgejo.org/models/unittest"
"forgejo.org/modules/util"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
@ -86,7 +87,7 @@ func TestF3Model_ForgeDatabase(t *testing.T) {
t.Run("Get not found", func(t *testing.T) {
unknownURL := "unknown"
forge, err := Get(t.Context(), FindOptions{URL: &unknownURL})
require.NoError(t, err)
require.ErrorIs(t, err, util.ErrNotExist)
assert.Nil(t, forge)
})

View file

@ -5,6 +5,7 @@ package mirror
import (
"context"
"errors"
"fmt"
"path/filepath"
"slices"
@ -14,6 +15,7 @@ import (
"forgejo.org/models/db"
"forgejo.org/modules/keying"
"forgejo.org/modules/timeutil"
"forgejo.org/modules/util"
"xorm.io/builder"
)
@ -249,7 +251,7 @@ func findFromPathEquivalents(ctx context.Context, forgeID int64, fromPath string
shortestFromPath = fromPath
} else {
mirror, err := Get(ctx, FindOptions{ID: &equivalents[0].ID})
if err != nil {
if err != nil && !errors.Is(err, util.ErrNotExist) {
return nil, nil, fmt.Errorf("mirror findFromPathEquivalents Get: %w", err)
}
found = mirror
@ -277,7 +279,7 @@ func Get(ctx context.Context, opts FindOptions) (*Mirror, error) {
return nil, fmt.Errorf("mirror Get Find: %w", err)
}
if len(mirrors) == 0 {
return nil, nil //nolint:nilnil
return nil, util.ErrNotExist
}
if len(mirrors) != 1 {
return nil, fmt.Errorf("mirror Get expected to find one mirror but found %d instead", len(mirrors))

View file

@ -5,9 +5,11 @@ package resource
import (
"context"
"errors"
"fmt"
"forgejo.org/models/db"
"forgejo.org/modules/util"
"xorm.io/builder"
)
@ -87,7 +89,7 @@ func Upsert(ctx context.Context, resource *Resource) (*Resource, error) {
ResourceID: &resource.ResourceID,
Kind: &resource.Kind,
})
if err != nil {
if err != nil && !errors.Is(err, util.ErrNotExist) {
return fmt.Errorf("resource Upsert Get: %w", err)
}
if found == nil {
@ -157,7 +159,7 @@ func Get(ctx context.Context, opts FindOptions) (*Resource, error) {
return nil, fmt.Errorf("resource Get Find: %w", err)
}
if len(resources) == 0 {
return nil, nil //nolint:nilnil
return nil, util.ErrNotExist
}
if len(resources) != 1 {
return nil, fmt.Errorf("resource Get expected to find one resource but found %d instead", len(resources))

View file

@ -6,17 +6,19 @@ package driver
import (
"context"
"errors"
"fmt"
f3_forge_model "forgejo.org/models/f3/forge"
user_model "forgejo.org/models/user"
"forgejo.org/modules/util"
f3_mirror_service "forgejo.org/services/f3/mirror"
"code.forgejo.org/f3/gof3/v3/f3"
f3_id "code.forgejo.org/f3/gof3/v3/id"
f3_kind "code.forgejo.org/f3/gof3/v3/kind"
"code.forgejo.org/f3/gof3/v3/tree/generic"
"code.forgejo.org/f3/gof3/v3/util"
f3_util "code.forgejo.org/f3/gof3/v3/util"
)
type forge struct {
@ -36,7 +38,7 @@ func newForge() generic.NodeDriverInterface {
func (o *forge) getOwnersKind(ctx context.Context, id string) f3_kind.Kind {
kind, ok := o.ownersKind[id]
if !ok {
user, err := user_model.GetUserByID(ctx, util.ParseInt(id))
user, err := user_model.GetUserByID(ctx, f3_util.ParseInt(id))
if err != nil {
panic(fmt.Errorf("user_repo.GetUserByID: %w", err))
}
@ -55,7 +57,7 @@ func (o *forge) getForgejoForge(ctx context.Context) *f3_forge_model.Forge {
URL: &o.url,
}
forge, err := f3_forge_model.Get(ctx, opts)
if err != nil {
if err != nil && !errors.Is(err, util.ErrNotExist) {
panic(err)
}
o.forge = forge