diff --git a/models/f3/forge/forge.go b/models/f3/forge/forge.go index 568b74f15d..3ed627f2fa 100644 --- a/models/f3/forge/forge.go +++ b/models/f3/forge/forge.go @@ -65,7 +65,7 @@ func (o *Forge) TableName() string { func (o *Forge) decryptToken() ([]byte, error) { token, err := keying.F3Forge.Decrypt(o.Token, keying.ColumnAndID("token", o.ID)) if err != nil { - return nil, fmt.Errorf("forge decryptToken Decrypt: %w", err) + return nil, fmt.Errorf("forge decryptToken Decrypt(%v): %w", o.ID, err) } return token, nil } @@ -88,7 +88,7 @@ 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 && !errors.Is(err, util.ErrNotExist) { - return fmt.Errorf("forge Upsert Get: %w", err) + return fmt.Errorf("forge Upsert Get(%v): %w", forge.URL, err) } if found == nil { return Insert(ctx, forge) @@ -96,7 +96,7 @@ func Upsert(ctx context.Context, forge *Forge) (*Forge, error) { forge.SetID(found.GetID()) if !Equal(forge, found) { if err := Update(ctx, found, forge); err != nil { - return fmt.Errorf("forge Update: %w", err) + return fmt.Errorf("forge Update(%v): %w", forge.ID, err) } } return nil @@ -116,7 +116,7 @@ func Update(ctx context.Context, old, new *Forge) error { forgeCopy := *new forgeCopy.Token = forgeCopy.encryptToken() if _, err := db.GetEngine(ctx).ID(forgeCopy.ID).AllCols().Update(&forgeCopy); err != nil { - return fmt.Errorf("forge Update Update: %w", err) + return fmt.Errorf("forge Update Update(%v): %w", new.ID, err) } return nil } @@ -128,7 +128,7 @@ func Insert(ctx context.Context, forge *Forge) error { forgeCopy := *forge forgeCopy.Token = forge.encryptToken() if _, err := db.GetEngine(ctx).ID(forgeCopy.ID).Cols("token").Update(forgeCopy); err != nil { - return fmt.Errorf("forge Insert Update: %w", err) + return fmt.Errorf("forge Insert Update(%v): %w", forgeCopy.ID, err) } return nil } @@ -162,7 +162,7 @@ func Find(ctx context.Context, opts FindOptions) (ForgeList, error) { for _, forge := range forges { token, err := forge.decryptToken() if err != nil { - return nil, fmt.Errorf("forge Find decryptToken: %w", err) + return nil, fmt.Errorf("forge Find decryptToken(%+v): %w", opts, err) } forge.SetToken(string(token)) } @@ -172,18 +172,18 @@ func Find(ctx context.Context, opts FindOptions) (ForgeList, error) { func Get(ctx context.Context, opts FindOptions) (*Forge, error) { forges, err := db.Find[Forge](ctx, opts) if err != nil { - return nil, fmt.Errorf("forge Get Find: %w", err) + return nil, fmt.Errorf("forge Get Find(%+v): %w", opts, err) } if len(forges) == 0 { 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)) + return nil, fmt.Errorf("forge Get(%+v) expected to find one forge but found %d instead", opts, len(forges)) } forge := forges[0] token, err := forge.decryptToken() if err != nil { - return nil, fmt.Errorf("forge Get decryptToken: %w", err) + return nil, fmt.Errorf("forge Get decryptToken(%v): %w", forge.ID, err) } forge.SetToken(string(token)) return forge, nil diff --git a/models/f3/mirror/mirror.go b/models/f3/mirror/mirror.go index 0b893fcf24..fc95766e53 100644 --- a/models/f3/mirror/mirror.go +++ b/models/f3/mirror/mirror.go @@ -134,18 +134,18 @@ func Upsert(ctx context.Context, mirror *Mirror) (*Mirror, error) { if err := db.WithTx(ctx, func(ctx context.Context) error { found, redundants, err := findFromPathEquivalents(ctx, mirror.ForgeID, mirror.FromPath) if err != nil { - return fmt.Errorf("mirror Upsert findFromPathEquivalents: %w", err) + return fmt.Errorf("mirror Upsert findFromPathEquivalents(%v, %v): %w", mirror.ForgeID, mirror.FromPath, err) } if found == nil { if err := Insert(ctx, mirror); err != nil { - return fmt.Errorf("mirror Upsert Insert: %w", err) + return fmt.Errorf("mirror Upsert Insert(%v, %v, %v): %w", mirror.ForgeID, mirror.FromPath, mirror.ToPath, err) } } else { if found.FromPath == mirror.FromPath { mirror.SetID(found.GetID()) if !Equal(mirror, found) { if err := Update(ctx, mirror); err != nil { - return fmt.Errorf("mirror Upsert Update: %w", err) + return fmt.Errorf("mirror Upsert Update(%v): %w", mirror.ID, err) } } } else { @@ -166,7 +166,7 @@ func Insert(ctx context.Context, mirror *Mirror) error { mirrorCopy := *mirror mirrorCopy.Token = mirrorCopy.encryptToken() if _, err := db.GetEngine(ctx).ID(mirrorCopy.ID).Cols("token").Update(mirrorCopy); err != nil { - return fmt.Errorf("mirror Insert Update: %w", err) + return fmt.Errorf("mirror Insert Update(%v): %w", mirrorCopy.ID, err) } return nil } @@ -193,12 +193,12 @@ type MirrorList []*Mirror //revive:disable-line:exported func Find(ctx context.Context, opts FindOptions) (MirrorList, error) { mirrors, err := db.Find[Mirror](ctx, opts) if err != nil { - return nil, fmt.Errorf("mirror Find Find: %w", err) + return nil, fmt.Errorf("mirror Find Find(%v): %w", opts, err) } for _, mirror := range mirrors { token, err := mirror.decryptToken() if err != nil { - return nil, fmt.Errorf("mirror Find decryptToken: %w", err) + return nil, fmt.Errorf("mirror Find decryptToken(%v): %w", mirror.ID, err) } mirror.SetToken(string(token)) } @@ -231,7 +231,7 @@ func findFromPathEquivalents(ctx context.Context, forgeID int64, fromPath string equivalents := make([]*equivalent, 0, 10) if err := db.GetEngine(ctx).Table("f3_mirror").Select("`id`, `from_path`, LENGTH(`from_path`) as `from_path_length`").Where(pathCond).OrderBy("`from_path_length`").Find(&equivalents); err != nil { - return nil, nil, fmt.Errorf("mirror findFromPathEquivalents Find: %w", err) + return nil, nil, fmt.Errorf("mirror findFromPathEquivalents Find(%v): %w", cond, err) } if len(equivalents) == 0 { return notFound, nil, nil @@ -243,7 +243,7 @@ func findFromPathEquivalents(ctx context.Context, forgeID int64, fromPath string } else { mirror, err := Get(ctx, FindOptions{ID: &equivalents[0].ID}) if err != nil && !errors.Is(err, util.ErrNotExist) { - return nil, nil, fmt.Errorf("mirror findFromPathEquivalents Get: %w", err) + return nil, nil, fmt.Errorf("mirror findFromPathEquivalents Get(%v): %w", &equivalents[0].ID, err) } found = mirror shortestFromPath = found.FromPath @@ -259,7 +259,7 @@ func findFromPathEquivalents(ctx context.Context, forgeID int64, fromPath string func removeRedundants(ctx context.Context, redundants []int64) error { if _, err := db.GetEngine(ctx).Table("f3_mirror").Where(builder.In("`id`", redundants)).Delete(); err != nil { - return fmt.Errorf("mirror removeRedundants Delete: %w", err) + return fmt.Errorf("mirror removeRedundants Delete(%v): %w", redundants, err) } return nil } @@ -267,18 +267,18 @@ func removeRedundants(ctx context.Context, redundants []int64) error { func Get(ctx context.Context, opts FindOptions) (*Mirror, error) { mirrors, err := db.Find[Mirror](ctx, opts) if err != nil { - return nil, fmt.Errorf("mirror Get Find: %w", err) + return nil, fmt.Errorf("mirror Get Find(%v): %w", opts, err) } if len(mirrors) == 0 { 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)) + return nil, fmt.Errorf("mirror Get(%v) expected to find one mirror but found %d instead", opts, len(mirrors)) } mirror := mirrors[0] token, err := mirror.decryptToken() if err != nil { - return nil, fmt.Errorf("mirror Get decryptToken: %w", err) + return nil, fmt.Errorf("mirror Get(%v) decryptToken: %w", mirror.ID, err) } mirror.SetToken(string(token)) return mirror, nil @@ -306,7 +306,7 @@ func Update(ctx context.Context, mirror *Mirror) error { mirrorCopy := *mirror mirrorCopy.Token = mirrorCopy.encryptToken() if _, err := db.GetEngine(ctx).ID(mirrorCopy.ID).AllCols().Update(mirrorCopy); err != nil { - return fmt.Errorf("mirror Update Update: %w", err) + return fmt.Errorf("mirror Update Update(%v): %w", mirrorCopy.ID, err) } return nil } diff --git a/models/f3/resource/resource.go b/models/f3/resource/resource.go index 6ae9799b15..da05de416e 100644 --- a/models/f3/resource/resource.go +++ b/models/f3/resource/resource.go @@ -84,13 +84,14 @@ func Equal(a, b *Resource) bool { func Upsert(ctx context.Context, resource *Resource) (*Resource, error) { if err := db.WithTx(ctx, func(ctx context.Context) error { - found, err := Get(ctx, FindOptions{ + opts := FindOptions{ ForgeID: &resource.ForgeID, ResourceID: &resource.ResourceID, Kind: &resource.Kind, - }) + } + found, err := Get(ctx, opts) if err != nil && !errors.Is(err, util.ErrNotExist) { - return fmt.Errorf("resource Upsert Get: %w", err) + return fmt.Errorf("resource Upsert Get(%v): %w", opts, err) } if found == nil { return Insert(ctx, resource) @@ -98,7 +99,7 @@ func Upsert(ctx context.Context, resource *Resource) (*Resource, error) { resource.SetID(found.GetID()) if !Equal(resource, found) { if err := Update(ctx, resource); err != nil { - return fmt.Errorf("resource Update: %w", err) + return fmt.Errorf("resource Update(%v): %w", resource.ID, err) } } return nil @@ -110,14 +111,14 @@ func Upsert(ctx context.Context, resource *Resource) (*Resource, error) { func Update(ctx context.Context, new *Resource) error { if _, err := db.GetEngine(ctx).ID(new.ID).AllCols().Update(new); err != nil { - return fmt.Errorf("resource Update Update: %w", err) + return fmt.Errorf("resource Update Update(%v): %w", new, err) } return nil } func Insert(ctx context.Context, resource *Resource) error { if err := db.Insert(ctx, resource); err != nil { - return fmt.Errorf("resource Insert Insert: %w", err) + return fmt.Errorf("resource Insert Insert(%v): %w", resource, err) } return nil } @@ -148,7 +149,7 @@ type ResourceList []*Resource //revive:disable-line:exported func Find(ctx context.Context, opts FindOptions) (ResourceList, error) { resourceList, err := db.Find[Resource](ctx, opts) if err != nil { - return nil, fmt.Errorf("resource Find Find: %w", err) + return nil, fmt.Errorf("resource Find Find(%v): %w", opts, err) } return resourceList, nil } @@ -156,13 +157,13 @@ func Find(ctx context.Context, opts FindOptions) (ResourceList, error) { func Get(ctx context.Context, opts FindOptions) (*Resource, error) { resources, err := db.Find[Resource](ctx, opts) if err != nil { - return nil, fmt.Errorf("resource Get Find: %w", err) + return nil, fmt.Errorf("resource Get Find(%v): %w", opts, err) } if len(resources) == 0 { 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)) + return nil, fmt.Errorf("resource Get(%v) expected to find one resource but found %d instead", opts, len(resources)) } return resources[0], nil }