wrap all errors in models/f3/... (part 2)

This commit is contained in:
limiting-factor 2026-05-28 15:51:12 +02:00
parent 07d91a04fe
commit 341e1798cb
No known key found for this signature in database
GPG key ID: FBFC3FECD17D904F
3 changed files with 32 additions and 31 deletions

View file

@ -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

View file

@ -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
}

View file

@ -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
}