diff --git a/go.mod b/go.mod index aab397c52d3979014f1063634cf9fbca384eb5e1..5fa79a32f0c3cd1302ee6fb933860fd1caef5958 100644 --- a/go.mod +++ b/go.mod @@ -15,10 +15,10 @@ require ( github.com/nats-io/nats.go v1.42.0 github.com/pkg/errors v0.9.1 github.com/rs/xid v1.6.0 - github.com/stretchr/testify v1.10.0 - go.mongodb.org/mongo-driver v1.17.3 - go.opentelemetry.io/otel v1.36.0 - go.opentelemetry.io/otel/trace v1.36.0 + github.com/stretchr/testify v1.9.0 + go.mongodb.org/mongo-driver/v2 v2.2.1 + go.opentelemetry.io/otel v1.30.0 + go.opentelemetry.io/otel/trace v1.30.0 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.38.0 golang.org/x/image v0.27.0 diff --git a/go.sum b/go.sum index 249be0a47619d18d0711ba369086369b6f604245..2222bc3682ee840d4128d39a12b3b3f03f734969 100644 --- a/go.sum +++ b/go.sum @@ -88,8 +88,8 @@ github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gi github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 h1:ilQV1hzziu+LLM3zUTJ0trRztfwgjqKnBWNtSRkbmwM= github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78/go.mod h1:aL8wCCfTfSfmXjznFBSZNN13rSJjlIOI1fUNAtF7rmI= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.mongodb.org/mongo-driver v1.17.3 h1:TQyXhnsWfWtgAhMtOgtYHMTkZIfBTpMTsMnd9ZBeHxQ= -go.mongodb.org/mongo-driver v1.17.3/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ= +go.mongodb.org/mongo-driver/v2 v2.2.1 h1:w5xra3yyu/sGrziMzK1D0cRRaH/b7lWCSsoN6+WV6AM= +go.mongodb.org/mongo-driver/v2 v2.2.1/go.mod h1:qQkDMhCGWl3FN509DfdPd4GRBLU/41zqF/k8eTRceps= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= go.opentelemetry.io/otel v1.36.0 h1:UumtzIklRBY6cI/lllNZlALOF5nNIzJVb16APdvgTXg= diff --git a/id/bson_test.go b/id/bson_test.go index c5fca60fb1856ca72138daa5da42d7fb9e6c6674..229992d6d5f2ad37a2ecfa35f29967f868652fe1 100644 --- a/id/bson_test.go +++ b/id/bson_test.go @@ -5,7 +5,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "go.mongodb.org/mongo-driver/bson" + "go.mongodb.org/mongo-driver/v2/bson" ) func TestID_MarshalUnmarshalBSON(t *testing.T) { diff --git a/id/object_id.go b/id/object_id.go index 3a3ff12641fd9dfee4ac458a3677fad3a4f0a501..b0eaef8e7ca076602d7f606d72f9b1b838b8da2f 100644 --- a/id/object_id.go +++ b/id/object_id.go @@ -4,9 +4,7 @@ import ( "strings" jsoniter "github.com/json-iterator/go" - "go.mongodb.org/mongo-driver/bson" - "go.mongodb.org/mongo-driver/bson/bsonrw" - "go.mongodb.org/mongo-driver/bson/bsontype" + "go.mongodb.org/mongo-driver/v2/bson" ) const Separator = '/' @@ -63,26 +61,26 @@ func (oid *ObjectId) UnmarshalJSON(b []byte) error { return nil } -func (oid *ObjectId) MarshalBSONValue() (bsontype.Type, []byte, error) { - return bson.MarshalValue(oid.String()) +func (oid *ObjectId) MarshalBSONValue() (byte, []byte, error) { + t, data, err := bson.MarshalValue(oid.String()) + return byte(t), data, err } -func (oid *ObjectId) UnmarshalBSONValue(btype bsontype.Type, data []byte) error { - if btype != bson.TypeString { +func (oid *ObjectId) UnmarshalBSONValue(btype byte, data []byte) error { + if bson.Type(btype) != bson.TypeString { return ErrInvalidType } - dec, err := bson.NewDecoder(bsonrw.NewBSONValueReader(btype, data)) - if err != nil { - return err - } + var str string - if err = dec.Decode(&str); err != nil { + if err := bson.UnmarshalValue(bson.TypeString, data, &str); err != nil { return err } + t, err := FromString(str) if err != nil { return err } + *oid = *t return nil } diff --git a/pkg/expr/mongo.go b/pkg/expr/mongo.go index 6e189db8195a1b0a80d0c715ef53b335c5e546ac..cf5cfc1fc0f1ba7c4fb8b755a3a5c6ae3edcaae3 100644 --- a/pkg/expr/mongo.go +++ b/pkg/expr/mongo.go @@ -12,7 +12,7 @@ import ( exprcompiler "github.com/expr-lang/expr/compiler" "github.com/expr-lang/expr/conf" "github.com/expr-lang/expr/parser" - "go.mongodb.org/mongo-driver/bson" + "go.mongodb.org/mongo-driver/v2/bson" ) var geoTypes = map[string]string{ diff --git a/pkg/expr/mongo_test.go b/pkg/expr/mongo_test.go index 587f25769e4a850d29d00fff3c93c09c6e647eb5..2b1eac7d73506d6884cb5237fac9454e8d003905 100644 --- a/pkg/expr/mongo_test.go +++ b/pkg/expr/mongo_test.go @@ -10,7 +10,7 @@ import ( "github.com/expr-lang/expr/ast" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "go.mongodb.org/mongo-driver/bson" + "go.mongodb.org/mongo-driver/v2/bson" "golang.org/x/net/context" ) diff --git a/pkg/filter/filter.go b/pkg/filter/filter.go index d75dc99886698a14342dc4f5ad4d9423fc26d893..9209a3bf84d5a048df5f7fe8b90add7c8e8e249f 100644 --- a/pkg/filter/filter.go +++ b/pkg/filter/filter.go @@ -12,8 +12,7 @@ import ( "git.perx.ru/perxis/perxis-go/pkg/schema/validate" "github.com/hashicorp/go-multierror" "github.com/mitchellh/mapstructure" - "go.mongodb.org/mongo-driver/bson" - "go.mongodb.org/mongo-driver/bson/primitive" + "go.mongodb.org/mongo-driver/v2/bson" ) type Op string @@ -325,7 +324,7 @@ func (b *mongoQueryBuilder) query(f *Filter) bson.M { val, _ := f.Value.(string) return bson.M{ b.field(f.Field): bson.M{ - b.getOp(f.Op): primitive.Regex{Pattern: val}, + b.getOp(f.Op): bson.Regex{Pattern: val}, }, } diff --git a/pkg/filter/filter_test.go b/pkg/filter/filter_test.go index 7283e26a0dfebcc5159211e49c30dc29150f12db..c5951224239b69467f56cae0b3be20cfa1b86258 100644 --- a/pkg/filter/filter_test.go +++ b/pkg/filter/filter_test.go @@ -8,7 +8,7 @@ import ( "git.perx.ru/perxis/perxis-go/pkg/schema/field" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "go.mongodb.org/mongo-driver/bson/primitive" + "go.mongodb.org/mongo-driver/v2/bson" ) func TestFilterHandler(t *testing.T) { @@ -186,7 +186,7 @@ func TestFilterHandler(t *testing.T) { t.Run("Build Query", func(t *testing.T) { t.Run("No Filters", func(t *testing.T) { res := h.Query() - require.IsType(t, res, primitive.M{}) + require.IsType(t, res, bson.M{}) pres := ph.Query() assert.Equal(t, res, pres, "пустой запрос с префиксом и без должны быть одинаковые") @@ -194,9 +194,9 @@ func TestFilterHandler(t *testing.T) { t.Run("Equal String", func(t *testing.T) { f := &Filter{Op: Equal, Field: "data.str", Value: "zzz"} res := h.Query(f) - b, ok := res.(primitive.M) + b, ok := res.(bson.M) require.True(t, ok) - assert.Equal(t, primitive.M{"$and": primitive.A{primitive.M{"data.str": primitive.M{"$eq": "zzz"}}}}, b) + assert.Equal(t, bson.M{"$and": bson.A{bson.M{"data.str": bson.M{"$eq": "zzz"}}}}, b) pf := &Filter{Op: Equal, Field: "data.str", Value: "zzz"} pres := ph.Query(pf) @@ -206,17 +206,17 @@ func TestFilterHandler(t *testing.T) { w, _ := time.Parse(time.RFC3339, "2012-11-01T22:08:41Z") f := &Filter{Op: In, Field: "obj.arr", Value: []interface{}{w}} res := h.Query(f) - b, ok := res.(primitive.M) + b, ok := res.(bson.M) require.True(t, ok) - assert.Equal(t, primitive.M{"$and": primitive.A{primitive.M{"obj.arr": primitive.M{"$in": []interface{}{w}}}}}, b) + assert.Equal(t, bson.M{"$and": bson.A{bson.M{"obj.arr": bson.M{"$in": []interface{}{w}}}}}, b) }) t.Run("Several ops for one field", func(t *testing.T) { w, _ := time.Parse(time.RFC3339, "2012-11-01T22:08:41Z") f := &Filter{Op: In, Field: "obj.arr", Value: []interface{}{w}} res := h.Query(f) - b, ok := res.(primitive.M) + b, ok := res.(bson.M) require.True(t, ok) - assert.Equal(t, primitive.M{"$and": primitive.A{primitive.M{"obj.arr": primitive.M{"$in": []interface{}{w}}}}}, b) + assert.Equal(t, bson.M{"$and": bson.A{bson.M{"obj.arr": bson.M{"$in": []interface{}{w}}}}}, b) }) }) } diff --git a/pkg/references/reference.go b/pkg/references/reference.go index 676f208c3304eb4840f43161a52a7a63779c6c8e..62ae23d0deaa5f64289d44d022a232ffb725a7ba 100644 --- a/pkg/references/reference.go +++ b/pkg/references/reference.go @@ -5,7 +5,7 @@ import ( "git.perx.ru/perxis/perxis-go/pkg/items" pb "git.perx.ru/perxis/perxis-go/proto/references" - "go.mongodb.org/mongo-driver/bson" + "go.mongodb.org/mongo-driver/v2/bson" ) type Reference struct { diff --git a/pkg/schema/field/location.go b/pkg/schema/field/location.go index 97aea3ea8aecbf206325bbd1b49363669ce0436d..20df8c5ae26abe5d2af96cc61a5c8b9bb0167917 100644 --- a/pkg/schema/field/location.go +++ b/pkg/schema/field/location.go @@ -5,9 +5,9 @@ import ( "git.perx.ru/perxis/perxis-go/pkg/errors" "github.com/mitchellh/mapstructure" - "go.mongodb.org/mongo-driver/bson" - "go.mongodb.org/mongo-driver/mongo" - "go.mongodb.org/mongo-driver/mongo/options" + "go.mongodb.org/mongo-driver/v2/bson" + "go.mongodb.org/mongo-driver/v2/mongo" + "go.mongodb.org/mongo-driver/v2/mongo/options" ) var locationType = &LocationType{}