diff --git a/mongox/base/getprotection.go b/mongox/base/getprotection.go index 28b4cc1..12ca266 100644 --- a/mongox/base/getprotection.go +++ b/mongox/base/getprotection.go @@ -2,10 +2,12 @@ package base import ( "reflect" + + "github.com/mainnika/mongox-go-driver/v2/mongox/base/protection" ) // GetProtection function finds protection field in the source document otherwise returns nil -func GetProtection(source interface{}) *Protection { +func GetProtection(source interface{}) *protection.Key { v := reflect.ValueOf(source) if v.Kind() != reflect.Ptr || v.IsNil() { @@ -19,11 +21,11 @@ func GetProtection(source interface{}) *Protection { field := el.Field(i) switch field.Interface().(type) { - case *Protection: - return field.Interface().(*Protection) - case Protection: + case *protection.Key: + return field.Interface().(*protection.Key) + case protection.Key: ptr := field.Addr() - return ptr.Interface().(*Protection) + return ptr.Interface().(*protection.Key) default: continue } diff --git a/mongox/base/protection.go b/mongox/base/protection/key.go similarity index 63% rename from mongox/base/protection.go rename to mongox/base/protection/key.go index 84db1c3..d195b0d 100644 --- a/mongox/base/protection.go +++ b/mongox/base/protection/key.go @@ -1,11 +1,11 @@ -package base +package protection import ( "go.mongodb.org/mongo-driver/bson/primitive" ) -// Protection field stores unique document id and version -type Protection struct { +// Key field stores unique document id and version +type Key struct { X primitive.ObjectID `bson:"_x" json:"_x" index:",hashed"` V int64 `bson:"_v" json:"_v"` } diff --git a/mongox/query/compose.go b/mongox/query/compose.go index 0553fec..fc9c6d1 100644 --- a/mongox/query/compose.go +++ b/mongox/query/compose.go @@ -6,7 +6,7 @@ import ( "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/bson/primitive" - "github.com/mainnika/mongox-go-driver/v2/mongox/base" + "github.com/mainnika/mongox-go-driver/v2/mongox/base/protection" ) // Compose is a function to compose filters into a single query @@ -87,10 +87,10 @@ func applyProtection(q *Query, f interface{}) bool { var v *int64 switch f := f.(type) { - case base.Protection: + case protection.Key: x = &f.X v = &f.V - case *base.Protection: + case *protection.Key: if f == nil { return false }