diff options
author | Emiliano Ciavatta | 2020-04-13 15:12:35 +0000 |
---|---|---|
committer | Emiliano Ciavatta | 2020-04-13 15:12:35 +0000 |
commit | a56a4e391d541ae05de0203f3d493edc3b04681d (patch) | |
tree | ab9344a650305aafb5afe552dc8cad63684de643 /utils.go | |
parent | 7113463dead05631339fdab94de9440201c42489 (diff) |
Add AddRoute tests
Diffstat (limited to 'utils.go')
-rw-r--r-- | utils.go | 32 |
1 files changed, 31 insertions, 1 deletions
@@ -2,9 +2,13 @@ package main import ( "crypto/sha256" + "encoding/binary" + "encoding/hex" + log "github.com/sirupsen/logrus" + "go.mongodb.org/mongo-driver/bson/primitive" "io" - "log" "os" + "time" ) const invalidHashString = "invalid" @@ -28,3 +32,29 @@ func Sha256Sum(fileName string) (string, error) { return string(h.Sum(nil)), nil } + +func CustomRowID(payload uint64, timestamp time.Time) RowID { + var key [12]byte + binary.BigEndian.PutUint32(key[0:4], uint32(timestamp.Unix())) + binary.BigEndian.PutUint64(key[4:12], payload) + + if oid, err := primitive.ObjectIDFromHex(hex.EncodeToString(key[:])); err == nil { + return oid + } else { + log.WithError(err).Warn("failed to create object id") + return primitive.NewObjectID() + } +} + +func NewRowID() RowID { + return primitive.NewObjectID() +} + +func EmptyRowID() RowID { + return [12]byte{} +} + +func RowIDFromHex(hex string) (RowID, error) { + rowID, err := primitive.ObjectIDFromHex(hex) + return rowID, err +} |