From e6034b9aae631df0c917b854365fc6b361b0ac26 Mon Sep 17 00:00:00 2001 From: Derrick Hammer Date: Thu, 4 Jan 2024 09:51:35 -0500 Subject: [PATCH] refactor: move UnmarshalBase64UrlJSON to encoding to prevent an import loop --- encoding/cid.go | 3 +-- serialize/serialize.go => encoding/encoding.go | 18 ++++++++---------- encoding/encrypted_cid.go | 3 +-- 3 files changed, 10 insertions(+), 14 deletions(-) rename serialize/serialize.go => encoding/encoding.go (56%) diff --git a/encoding/cid.go b/encoding/cid.go index 20358b4..440bf04 100644 --- a/encoding/cid.go +++ b/encoding/cid.go @@ -7,7 +7,6 @@ import ( "errors" "fmt" "git.lumeweb.com/LumeWeb/libs5-go/internal/bases" - "git.lumeweb.com/LumeWeb/libs5-go/serialize" "git.lumeweb.com/LumeWeb/libs5-go/types" "git.lumeweb.com/LumeWeb/libs5-go/utils" "github.com/vmihailenco/msgpack/v5" @@ -213,7 +212,7 @@ func (b CID) MarshalJSON() ([]byte, error) { } func (cid *CID) UnmarshalJSON(data []byte) error { - decData, err := serialize.UnmarshalBase64UrlJSON(data) + decData, err := UnmarshalBase64UrlJSON(data) if err != nil { return err diff --git a/serialize/serialize.go b/encoding/encoding.go similarity index 56% rename from serialize/serialize.go rename to encoding/encoding.go index f0d5ab2..7dad476 100644 --- a/serialize/serialize.go +++ b/encoding/encoding.go @@ -1,9 +1,6 @@ -package serialize +package encoding -import ( - "encoding/base64" - "github.com/multiformats/go-multibase" -) +import "encoding/base64" func UnmarshalBase64UrlJSON(data []byte) ([]byte, error) { strData := string(data) @@ -15,15 +12,16 @@ func UnmarshalBase64UrlJSON(data []byte) ([]byte, error) { return nil, nil } - if strData[0] == 'u' { - _, decoded, err := multibase.Decode(strData) - if err != nil { + decodedData, err := MultibaseDecodeString(strData) + if err != nil { + if err != ErrMultibaseEncodingNotSupported { return nil, err } - return decoded, nil + } else { + return decodedData, nil } - decodedData, err := base64.RawURLEncoding.DecodeString(strData) + decodedData, err = base64.RawURLEncoding.DecodeString(strData) if err != nil { return nil, err } diff --git a/encoding/encrypted_cid.go b/encoding/encrypted_cid.go index 0d990f3..ba73f65 100644 --- a/encoding/encrypted_cid.go +++ b/encoding/encrypted_cid.go @@ -3,7 +3,6 @@ package encoding import ( "encoding/json" "errors" - "git.lumeweb.com/LumeWeb/libs5-go/serialize" "git.lumeweb.com/LumeWeb/libs5-go/types" "git.lumeweb.com/LumeWeb/libs5-go/utils" "github.com/vmihailenco/msgpack/v5" @@ -101,7 +100,7 @@ func (c EncryptedCID) MarshalJSON() ([]byte, error) { } func (c *EncryptedCID) UnmarshalJSON(data []byte) error { - decData, err := serialize.UnmarshalBase64UrlJSON(data) + decData, err := UnmarshalBase64UrlJSON(data) if err != nil { return err