From 72b2ab22089e76c973d805cab55c23ca37f2a59f Mon Sep 17 00:00:00 2001 From: Jono Wenger <jono@elixxir.io> Date: Thu, 5 Jan 2023 13:51:57 -0800 Subject: [PATCH] Add info about handler return types to docstring --- indexedDb/channels/handlers.go | 45 ++++++++++++++++++---------- indexedDb/channels/implementation.go | 2 +- indexedDb/channels/init.go | 13 -------- indexedDb/dm/handlers.go | 30 ++++++++++++------- indexedDb/dm/implementation.go | 2 +- indexedDb/dm/init.go | 17 ++--------- indexedDb/utils.go | 2 +- indexedDbWorker/channels/init.go | 4 +-- indexedDbWorker/dm/init.go | 4 +-- 9 files changed, 55 insertions(+), 64 deletions(-) diff --git a/indexedDb/channels/handlers.go b/indexedDb/channels/handlers.go index fd962afb..5fefb65e 100644 --- a/indexedDb/channels/handlers.go +++ b/indexedDb/channels/handlers.go @@ -50,14 +50,15 @@ func (m *manager) RegisterHandlers() { m.mh.RegisterHandler(indexedDbWorker.DeleteMessageTag, m.deleteMessageHandler) } -// newWASMEventModelHandler is the handler for NewWASMEventModel. +// newWASMEventModelHandler is the handler for NewWASMEventModel. Returns nil on +// success or an error message on failure. func (m *manager) newWASMEventModelHandler(data []byte) []byte { var msg mChannels.NewWASMEventModelMessage err := json.Unmarshal(data, &msg) if err != nil { jww.ERROR.Printf("Could not JSON unmarshal "+ "NewWASMEventModelMessage from main thread: %+v", err) - return []byte{} + return nil } // Create new encryption cipher @@ -67,7 +68,7 @@ func (m *manager) newWASMEventModelHandler(data []byte) []byte { if err != nil { jww.ERROR.Printf("Could not JSON unmarshal channel cipher from "+ "main thread: %+v", err) - return []byte{} + return nil } m.model, err = NewWASMEventModel(msg.Path, encryption, @@ -75,7 +76,7 @@ func (m *manager) newWASMEventModelHandler(data []byte) []byte { if err != nil { return []byte(err.Error()) } - return []byte{} + return nil } // messageReceivedCallback sends calls to the MessageReceivedCallback in the @@ -98,7 +99,8 @@ func (m *manager) messageReceivedCallback( } // Send it to the main thread - m.mh.SendResponse(indexedDbWorker.GetMessageTag, indexedDbWorker.InitID, data) + m.mh.SendResponse( + indexedDbWorker.GetMessageTag, indexedDbWorker.InitID, data) } // storeEncryptionStatus augments the functionality of @@ -152,7 +154,8 @@ func (m *manager) storeEncryptionStatus( return response.EncryptionStatus, nil } -// joinChannelHandler is the handler for wasmModel.JoinChannel. +// joinChannelHandler is the handler for wasmModel.JoinChannel. Always returns +// nil; meaning, no response is supplied (or expected). func (m *manager) joinChannelHandler(data []byte) []byte { var channel cryptoBroadcast.Channel err := json.Unmarshal(data, &channel) @@ -166,7 +169,8 @@ func (m *manager) joinChannelHandler(data []byte) []byte { return nil } -// leaveChannelHandler is the handler for wasmModel.LeaveChannel. +// leaveChannelHandler is the handler for wasmModel.LeaveChannel. Always returns +// nil; meaning, no response is supplied (or expected). func (m *manager) leaveChannelHandler(data []byte) []byte { channelID, err := id.Unmarshal(data) if err != nil { @@ -179,7 +183,8 @@ func (m *manager) leaveChannelHandler(data []byte) []byte { return nil } -// receiveMessageHandler is the handler for wasmModel.ReceiveMessage. +// receiveMessageHandler is the handler for wasmModel.ReceiveMessage. Returns +// nil on error or the JSON marshalled UUID (uint64) on success. func (m *manager) receiveMessageHandler(data []byte) []byte { var msg channels.ModelMessage err := json.Unmarshal(data, &msg) @@ -203,7 +208,8 @@ func (m *manager) receiveMessageHandler(data []byte) []byte { return uuidData } -// receiveReplyHandler is the handler for wasmModel.ReceiveReply. +// receiveReplyHandler is the handler for wasmModel.ReceiveReply. Returns +// nil on error or the JSON marshalled UUID (uint64) on success. func (m *manager) receiveReplyHandler(data []byte) []byte { var msg mChannels.ReceiveReplyMessage err := json.Unmarshal(data, &msg) @@ -227,7 +233,8 @@ func (m *manager) receiveReplyHandler(data []byte) []byte { return uuidData } -// receiveReactionHandler is the handler for wasmModel.ReceiveReaction. +// receiveReactionHandler is the handler for wasmModel.ReceiveReaction. Returns +// nil on error or the JSON marshalled UUID (uint64) on success. func (m *manager) receiveReactionHandler(data []byte) []byte { var msg mChannels.ReceiveReplyMessage err := json.Unmarshal(data, &msg) @@ -251,7 +258,8 @@ func (m *manager) receiveReactionHandler(data []byte) []byte { return uuidData } -// updateFromUUIDHandler is the handler for wasmModel.UpdateFromUUID. +// updateFromUUIDHandler is the handler for wasmModel.UpdateFromUUID. Always +// returns nil; meaning, no response is supplied (or expected). func (m *manager) updateFromUUIDHandler(data []byte) []byte { var msg mChannels.MessageUpdateInfo err := json.Unmarshal(data, &msg) @@ -290,6 +298,7 @@ func (m *manager) updateFromUUIDHandler(data []byte) []byte { } // updateFromMessageIDHandler is the handler for wasmModel.UpdateFromMessageID. +// Always returns nil; meaning, no response is supplied (or expected). func (m *manager) updateFromMessageIDHandler(data []byte) []byte { var msg mChannels.MessageUpdateInfo err := json.Unmarshal(data, &msg) @@ -330,7 +339,10 @@ func (m *manager) updateFromMessageIDHandler(data []byte) []byte { return uuidData } -// getMessageHandler is the handler for wasmModel.GetMessage. +// getMessageHandler is the handler for wasmModel.GetMessage. Returns JSON +// marshalled channels.GetMessageMessage. If an error occurs, then Error will +// be set with the error message. Otherwise, Message will be set. Only one field +// will be set. func (m *manager) getMessageHandler(data []byte) []byte { messageID, err := message.UnmarshalID(data) if err != nil { @@ -348,16 +360,17 @@ func (m *manager) getMessageHandler(data []byte) []byte { reply.Message = msg } - messageData, err := json.Marshal(msg) + messageData, err := json.Marshal(reply) if err != nil { - jww.ERROR.Printf( - "Could not JSON marshal UUID from ReceiveReaction: %+v", err) + jww.ERROR.Printf("Could not JSON marshal GetMessageMessage for "+ + "GetMessage reply: %+v", err) return nil } return messageData } -// deleteMessageHandler is the handler for wasmModel.DeleteMessage. +// deleteMessageHandler is the handler for wasmModel.DeleteMessage. Always +// returns nil; meaning, no response is supplied (or expected). func (m *manager) deleteMessageHandler(data []byte) []byte { messageID, err := message.UnmarshalID(data) if err != nil { diff --git a/indexedDb/channels/implementation.go b/indexedDb/channels/implementation.go index 005bd3fb..f26265bc 100644 --- a/indexedDb/channels/implementation.go +++ b/indexedDb/channels/implementation.go @@ -13,7 +13,6 @@ import ( "crypto/ed25519" "encoding/base64" "encoding/json" - "gitlab.com/elixxir/xxdk-wasm/indexedDb" "strings" "sync" "syscall/js" @@ -28,6 +27,7 @@ import ( cryptoBroadcast "gitlab.com/elixxir/crypto/broadcast" cryptoChannel "gitlab.com/elixxir/crypto/channel" "gitlab.com/elixxir/crypto/message" + "gitlab.com/elixxir/xxdk-wasm/indexedDb" "gitlab.com/elixxir/xxdk-wasm/utils" "gitlab.com/xx_network/primitives/id" ) diff --git a/indexedDb/channels/init.go b/indexedDb/channels/init.go index f97e2b4a..9ecc16cc 100644 --- a/indexedDb/channels/init.go +++ b/indexedDb/channels/init.go @@ -106,19 +106,6 @@ func newWASMModel(databaseName string, encryption cryptoChannel.Cipher, jww.WARN.Printf("IndexedDb encryption disabled!") } - // Attempt to ensure the database has been properly initialized - openRequest, err = idb.Global().Open(ctx, databaseName, currentVersion, - func(db *idb.Database, oldVersion, newVersion uint) error { - return nil - }) - if err != nil { - return nil, err - } - // Wait for database open to finish - db, err = openRequest.Await(ctx) - if err != nil { - return nil, err - } wrapper := &wasmModel{db: db, receivedMessageCB: cb, cipher: encryption} return wrapper, nil diff --git a/indexedDb/dm/handlers.go b/indexedDb/dm/handlers.go index 2afdde6b..b2a580ba 100644 --- a/indexedDb/dm/handlers.go +++ b/indexedDb/dm/handlers.go @@ -44,14 +44,15 @@ func (m *manager) RegisterHandlers() { m.mh.RegisterHandler(indexedDbWorker.UpdateSentStatusTag, m.updateSentStatusHandler) } -// newWASMEventModelHandler is the handler for NewWASMEventModel. +// newWASMEventModelHandler is the handler for NewWASMEventModel. Returns nil on +// success or an error message on failure. func (m *manager) newWASMEventModelHandler(data []byte) []byte { var msg mChannels.NewWASMEventModelMessage err := json.Unmarshal(data, &msg) if err != nil { jww.ERROR.Printf("Could not JSON unmarshal NewWASMEventModelMessage "+ "from NewWASMEventModel in main thread: %+v", err) - return []byte{} + return nil } // Create new encryption cipher @@ -61,7 +62,7 @@ func (m *manager) newWASMEventModelHandler(data []byte) []byte { if err != nil { jww.ERROR.Printf("Could not JSON unmarshal channel cipher from "+ "main thread: %+v", err) - return []byte{} + return nil } m.model, err = NewWASMEventModel(msg.Path, encryption, @@ -69,7 +70,7 @@ func (m *manager) newWASMEventModelHandler(data []byte) []byte { if err != nil { return []byte(err.Error()) } - return []byte{} + return nil } // messageReceivedCallback sends calls to the MessageReceivedCallback in the @@ -92,7 +93,8 @@ func (m *manager) messageReceivedCallback( } // Send it to the main thread - m.mh.SendResponse(indexedDbWorker.GetMessageTag, indexedDbWorker.InitID, data) + m.mh.SendResponse( + indexedDbWorker.GetMessageTag, indexedDbWorker.InitID, data) } // storeEncryptionStatus augments the functionality of @@ -121,7 +123,8 @@ func (m *manager) storeEncryptionStatus( }) // Send encryption status to main thread - m.mh.SendResponse(indexedDbWorker.EncryptionStatusTag, indexedDbWorker.InitID, data) + m.mh.SendResponse( + indexedDbWorker.EncryptionStatusTag, indexedDbWorker.InitID, data) // Wait for response var response mChannels.EncryptionStatusReply @@ -145,7 +148,8 @@ func (m *manager) storeEncryptionStatus( return response.EncryptionStatus, nil } -// receiveHandler is the handler for wasmModel.Receive. +// receiveHandler is the handler for wasmModel.Receive. Returns nil on error or +// the JSON marshalled UUID (uint64) on success. func (m *manager) receiveHandler(data []byte) []byte { var msg mDm.TransferMessage err := json.Unmarshal(data, &msg) @@ -168,7 +172,8 @@ func (m *manager) receiveHandler(data []byte) []byte { return uuidData } -// receiveTextHandler is the handler for wasmModel.ReceiveText. +// receiveTextHandler is the handler for wasmModel.ReceiveText. Returns nil on +// error or the JSON marshalled UUID (uint64) on success. func (m *manager) receiveTextHandler(data []byte) []byte { var msg mDm.TransferMessage err := json.Unmarshal(data, &msg) @@ -191,7 +196,8 @@ func (m *manager) receiveTextHandler(data []byte) []byte { return uuidData } -// receiveReplyHandler is the handler for wasmModel.ReceiveReply. +// receiveReplyHandler is the handler for wasmModel.ReceiveReply. Returns nil on +// error or the JSON marshalled UUID (uint64) on success. func (m *manager) receiveReplyHandler(data []byte) []byte { var msg mDm.TransferMessage err := json.Unmarshal(data, &msg) @@ -214,7 +220,8 @@ func (m *manager) receiveReplyHandler(data []byte) []byte { return uuidData } -// receiveReactionHandler is the handler for wasmModel.ReceiveReaction. +// receiveReactionHandler is the handler for wasmModel.ReceiveReaction. Returns +// nil on error or the JSON marshalled UUID (uint64) on success. func (m *manager) receiveReactionHandler(data []byte) []byte { var msg mDm.TransferMessage err := json.Unmarshal(data, &msg) @@ -237,7 +244,8 @@ func (m *manager) receiveReactionHandler(data []byte) []byte { return uuidData } -// updateSentStatusHandler is the handler for wasmModel.UpdateSentStatus. +// updateSentStatusHandler is the handler for wasmModel.UpdateSentStatus. Always +// returns nil; meaning, no response is supplied (or expected). func (m *manager) updateSentStatusHandler(data []byte) []byte { var msg mDm.TransferMessage err := json.Unmarshal(data, &msg) diff --git a/indexedDb/dm/implementation.go b/indexedDb/dm/implementation.go index 0250d66b..bde56ced 100644 --- a/indexedDb/dm/implementation.go +++ b/indexedDb/dm/implementation.go @@ -12,7 +12,6 @@ package main import ( "crypto/ed25519" "encoding/json" - "gitlab.com/elixxir/xxdk-wasm/indexedDb" "strings" "sync" "syscall/js" @@ -22,6 +21,7 @@ import ( jww "github.com/spf13/jwalterweatherman" "gitlab.com/elixxir/client/v4/cmix/rounds" "gitlab.com/elixxir/client/v4/dm" + "gitlab.com/elixxir/xxdk-wasm/indexedDb" "gitlab.com/elixxir/xxdk-wasm/utils" "gitlab.com/xx_network/primitives/id" diff --git a/indexedDb/dm/init.go b/indexedDb/dm/init.go index a8604174..ceeb884e 100644 --- a/indexedDb/dm/init.go +++ b/indexedDb/dm/init.go @@ -11,8 +11,6 @@ package main import ( "crypto/ed25519" - "gitlab.com/elixxir/xxdk-wasm/indexedDb" - "gitlab.com/elixxir/xxdk-wasm/indexedDbWorker" "syscall/js" "time" @@ -21,6 +19,8 @@ import ( jww "github.com/spf13/jwalterweatherman" "gitlab.com/elixxir/client/v4/dm" cryptoChannel "gitlab.com/elixxir/crypto/channel" + "gitlab.com/elixxir/xxdk-wasm/indexedDb" + "gitlab.com/elixxir/xxdk-wasm/indexedDbWorker" ) const ( @@ -108,19 +108,6 @@ func newWASMModel(databaseName string, encryption cryptoChannel.Cipher, jww.WARN.Printf("IndexedDb encryption disabled!") } - // Attempt to ensure the database has been properly initialized - openRequest, err = idb.Global().Open(ctx, databaseName, currentVersion, - func(db *idb.Database, oldVersion, newVersion uint) error { - return nil - }) - if err != nil { - return nil, err - } - // Wait for database open to finish - db, err = openRequest.Await(ctx) - if err != nil { - return nil, err - } wrapper := &wasmModel{db: db, receivedMessageCB: cb, cipher: encryption} return wrapper, nil diff --git a/indexedDb/utils.go b/indexedDb/utils.go index 4a1fb129..664a1cc6 100644 --- a/indexedDb/utils.go +++ b/indexedDb/utils.go @@ -31,7 +31,7 @@ const ( ErrDoesNotExist = "result is undefined" ) -// NewContext builds a context for indexedDbWorker operations. +// NewContext builds a context for indexedDb operations. func NewContext() (context.Context, context.CancelFunc) { return context.WithTimeout(context.Background(), dbTimeout) } diff --git a/indexedDbWorker/channels/init.go b/indexedDbWorker/channels/init.go index 161ba06a..ae2469e0 100644 --- a/indexedDbWorker/channels/init.go +++ b/indexedDbWorker/channels/init.go @@ -85,9 +85,7 @@ func NewWASMEventModel(path string, encryption cryptoChannel.Cipher, errChan := make(chan string) wh.SendMessage(indexedDbWorker.NewWASMEventModelTag, payload, - func(data []byte) { - errChan <- string(data) - }) + func(data []byte) { errChan <- string(data) }) select { case workerErr := <-errChan: diff --git a/indexedDbWorker/dm/init.go b/indexedDbWorker/dm/init.go index c162c01b..12af524c 100644 --- a/indexedDbWorker/dm/init.go +++ b/indexedDbWorker/dm/init.go @@ -76,9 +76,7 @@ func NewWASMEventModel(path string, encryption cryptoChannel.Cipher, errChan := make(chan string) wh.SendMessage(indexedDbWorker.NewWASMEventModelTag, payload, - func(data []byte) { - errChan <- string(data) - }) + func(data []byte) { errChan <- string(data) }) select { case workerErr := <-errChan: -- GitLab