-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathhelpers.go
40 lines (30 loc) · 912 Bytes
/
helpers.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package mongol
import (
"fmt"
"go.mongodb.org/mongo-driver/bson/primitive"
)
// ObjectIDsFromStrArr() converts provided array of mongoid strings to ObjectID
func ObjectIDsFromStrArr(idsRaw []string) ([]*primitive.ObjectID, error) {
ids := make([]*primitive.ObjectID, len(idsRaw))
for i := 0; i < cap(ids); i++ {
id, err := primitive.ObjectIDFromHex(idsRaw[i])
if err != nil {
return nil, fmt.Errorf("objectID conversion err: %s", err)
}
ids[i] = &id
}
return ids, nil
}
// IsValidMongoID() validates provided mongoid string
func IsValidMongoID(id string) bool {
_, err := primitive.ObjectIDFromHex(id)
return err == nil
}
// StringToObjectID() converts the string to Mongo ObjectID
func StringToObjectID(hexID string) (primitive.ObjectID, error) {
oid, err := primitive.ObjectIDFromHex(hexID)
if err != nil {
return primitive.ObjectID{}, ErrInvalidObjectID
}
return oid, nil
}