Remove custom err type

err
This commit is contained in:
Nikita Tokarchuk
2020-03-06 00:21:17 +01:00
parent deac951551
commit db6c11f455
14 changed files with 52 additions and 87 deletions
+2 -2
View File
@@ -1,6 +1,7 @@
package common
import (
"fmt"
"reflect"
"strconv"
"strings"
@@ -10,7 +11,6 @@ import (
"go.mongodb.org/mongo-driver/mongo/options"
"github.com/mainnika/mongox-go-driver/v2/mongox"
"github.com/mainnika/mongox-go-driver/v2/mongox/errors"
"github.com/mainnika/mongox-go-driver/v2/mongox/query"
)
@@ -62,7 +62,7 @@ func createAggregateLoad(db mongox.Database, target interface{}, composed *query
}
jsonTag, ok := tag.Lookup("json")
if jsonTag == "-" {
return nil, errors.Malformedf("preload private field is impossible")
return nil, fmt.Errorf("preload private field is impossible")
}
jsonData := strings.SplitN(jsonTag, ",", 2)
+4 -3
View File
@@ -1,11 +1,12 @@
package common
import (
"fmt"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
"github.com/mainnika/mongox-go-driver/v2/mongox"
"github.com/mainnika/mongox-go-driver/v2/mongox/errors"
"github.com/mainnika/mongox-go-driver/v2/mongox/query"
)
@@ -22,10 +23,10 @@ func Count(db mongox.Database, target interface{}, filters ...interface{}) (int6
result, err := collection.CountDocuments(db.Context(), composed.M(), opts)
if err == mongo.ErrNoDocuments {
return 0, errors.NotFoundErrorf("%s", err)
return 0, err
}
if err != nil {
return 0, errors.InternalErrorf("can't decode desult: %s", err)
return 0, fmt.Errorf("can't decode desult: %w", err)
}
return result, nil
+7 -7
View File
@@ -1,6 +1,7 @@
package common
import (
"fmt"
"reflect"
"go.mongodb.org/mongo-driver/bson/primitive"
@@ -8,7 +9,6 @@ import (
"github.com/mainnika/mongox-go-driver/v2/mongox"
"github.com/mainnika/mongox-go-driver/v2/mongox/base"
"github.com/mainnika/mongox-go-driver/v2/mongox/errors"
)
// DeleteArray removes documents list from a database by their ids
@@ -19,18 +19,18 @@ func DeleteArray(db mongox.Database, target interface{}) error {
targetK := targetV.Kind()
if targetK != reflect.Ptr {
panic(errors.Malformedf("target is not a ptr"))
panic(fmt.Errorf("target is not a ptr"))
}
targetSliceV := targetV.Elem()
targetSliceT := targetT.Elem()
if targetSliceT.Kind() != reflect.Slice {
panic(errors.Malformedf("target should be a ptr to a slice"))
panic(fmt.Errorf("target should be a ptr to a slice"))
}
targetSliceElemT := targetSliceT.Elem()
if targetSliceElemT.Kind() != reflect.Ptr {
panic(errors.Malformedf("target slice should contain ptrs"))
panic(fmt.Errorf("target slice should contain ptrs"))
}
zeroElem := reflect.Zero(targetSliceElemT)
@@ -45,15 +45,15 @@ func DeleteArray(db mongox.Database, target interface{}) error {
}
if len(ids) == 0 {
return errors.Malformedf("can't delete zero elements")
return fmt.Errorf("can't delete zero elements")
}
result, err := collection.DeleteMany(db.Context(), primitive.M{"_id": primitive.M{"$in": ids}}, opts)
if err != nil {
return errors.NotFoundErrorf("can't create find and delete result: %s", err)
return fmt.Errorf("can't create find and delete result: %w", err)
}
if result.DeletedCount != int64(targetLen) {
return errors.InternalErrorf("can't verify delete result: removed count mismatch %d != %d", result.DeletedCount, targetLen)
return fmt.Errorf("can't verify delete result: removed count mismatch %d != %d", result.DeletedCount, targetLen)
}
return nil
+4 -4
View File
@@ -1,6 +1,7 @@
package common
import (
"fmt"
"time"
"go.mongodb.org/mongo-driver/bson/primitive"
@@ -9,7 +10,6 @@ import (
"github.com/mainnika/mongox-go-driver/v2/mongox"
"github.com/mainnika/mongox-go-driver/v2/mongox/base"
"github.com/mainnika/mongox-go-driver/v2/mongox/errors"
"github.com/mainnika/mongox-go-driver/v2/mongox/query"
)
@@ -35,15 +35,15 @@ func DeleteOne(db mongox.Database, target interface{}, filters ...interface{}) e
result := collection.FindOneAndDelete(db.Context(), composed.M(), opts)
if result.Err() != nil {
return errors.InternalErrorf("can't create find one and delete result: %s", result.Err())
return fmt.Errorf("can't create find one and delete result: %w", result.Err())
}
err := result.Decode(target)
if err == mongo.ErrNoDocuments {
return errors.NotFoundErrorf("%s", err)
return err
}
if err != nil {
return errors.InternalErrorf("can't decode result: %s", err)
return fmt.Errorf("can't decode result: %w", err)
}
return nil
+5 -5
View File
@@ -1,13 +1,13 @@
package common
import (
"fmt"
"reflect"
"go.mongodb.org/mongo-driver/mongo"
"github.com/mainnika/mongox-go-driver/v2/mongox"
"github.com/mainnika/mongox-go-driver/v2/mongox/base"
"github.com/mainnika/mongox-go-driver/v2/mongox/errors"
"github.com/mainnika/mongox-go-driver/v2/mongox/query"
)
@@ -19,18 +19,18 @@ func LoadArray(db mongox.Database, target interface{}, filters ...interface{}) e
targetK := targetV.Kind()
if targetK != reflect.Ptr {
panic(errors.InternalErrorf("target is not a ptr"))
panic(fmt.Errorf("target is not a ptr"))
}
targetSliceV := targetV.Elem()
targetSliceT := targetT.Elem()
if targetSliceT.Kind() != reflect.Slice {
panic(errors.InternalErrorf("target should be a ptr to a slice"))
panic(fmt.Errorf("target should be a ptr to a slice"))
}
targetSliceElemT := targetSliceT.Elem()
if targetSliceElemT.Kind() != reflect.Ptr {
panic(errors.InternalErrorf("target slice should contain ptrs"))
panic(fmt.Errorf("target slice should contain ptrs"))
}
composed := query.Compose(filters...)
@@ -46,7 +46,7 @@ func LoadArray(db mongox.Database, target interface{}, filters ...interface{}) e
result, err = createSimpleLoad(db, zeroElem.Interface(), composed)
}
if err != nil {
return errors.InternalErrorf("can't create find result: %s", err)
return fmt.Errorf("can't create find result: %w", err)
}
defer result.Close(db.Context())
+7 -3
View File
@@ -1,11 +1,12 @@
package common
import (
"fmt"
"go.mongodb.org/mongo-driver/mongo"
"github.com/mainnika/mongox-go-driver/v2/mongox"
"github.com/mainnika/mongox-go-driver/v2/mongox/base"
"github.com/mainnika/mongox-go-driver/v2/mongox/errors"
"github.com/mainnika/mongox-go-driver/v2/mongox/query"
)
@@ -24,12 +25,15 @@ func LoadOne(db mongox.Database, target interface{}, filters ...interface{}) err
result, err = createSimpleLoad(db, target, composed)
}
if err != nil {
return errors.InternalErrorf("can't create find result: %s", err)
return fmt.Errorf("can't create find result: %w", err)
}
hasNext := result.Next(db.Context())
if result.Err() != nil {
return err
}
if !hasNext {
return errors.NotFoundErrorf("can't find result: %s", result.Err())
return mongo.ErrNoDocuments
}
base.Reset(target)
+12 -5
View File
@@ -2,12 +2,12 @@ package common
import (
"context"
"fmt"
"go.mongodb.org/mongo-driver/mongo"
"github.com/mainnika/mongox-go-driver/v2/mongox"
"github.com/mainnika/mongox-go-driver/v2/mongox/base"
"github.com/mainnika/mongox-go-driver/v2/mongox/errors"
"github.com/mainnika/mongox-go-driver/v2/mongox/query"
)
@@ -23,15 +23,18 @@ func (l *StreamLoader) DecodeNext() error {
hasNext := l.Cursor.Next(l.ctx)
if l.Cursor.Err() != nil {
return l.Cursor.Err()
}
if !hasNext {
return errors.NotFoundErrorf("%s", mongo.ErrNoDocuments)
return mongo.ErrNoDocuments
}
base.Reset(l.target)
err := l.Decode(l.target)
if err != nil {
return errors.InternalErrorf("can't decode desult: %s", err)
return fmt.Errorf("can't decode desult: %w", err)
}
return nil
@@ -41,8 +44,12 @@ func (l *StreamLoader) DecodeNext() error {
func (l *StreamLoader) Next() error {
hasNext := l.Cursor.Next(l.ctx)
if l.Cursor.Err() != nil {
return l.Cursor.Err()
}
if !hasNext {
return errors.NotFoundErrorf("%s", mongo.ErrNoDocuments)
return mongo.ErrNoDocuments
}
return nil
@@ -69,7 +76,7 @@ func LoadStream(db mongox.Database, target interface{}, filters ...interface{})
cursor, err = createSimpleLoad(db, target, composed)
}
if err != nil {
return nil, errors.InternalErrorf("can't create find result: %s", err)
return nil, fmt.Errorf("can't create find result: %w", err)
}
l := &StreamLoader{Cursor: cursor, ctx: db.Context(), target: target}
+1 -2
View File
@@ -9,7 +9,6 @@ import (
"github.com/mainnika/mongox-go-driver/v2/mongox"
"github.com/mainnika/mongox-go-driver/v2/mongox/base"
"github.com/mainnika/mongox-go-driver/v2/mongox/errors"
"github.com/mainnika/mongox-go-driver/v2/mongox/query"
)
@@ -33,7 +32,7 @@ func SaveOne(db mongox.Database, source interface{}) error {
result := collection.FindOneAndReplace(db.Context(), composed.M(), source, opts)
if result.Err() != nil {
return errors.NotFoundErrorf("%s", result.Err())
return result.Err()
}
return result.Decode(source)