mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2026-05-28 11:14:54 -04:00
wrap all errors in models/f3/... (part 2)
This commit is contained in:
parent
07d91a04fe
commit
341e1798cb
3 changed files with 32 additions and 31 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue