Skip to content
Snippets Groups Projects
Commit 1a89f853 authored by Jake Taylor's avatar Jake Taylor
Browse files

simplify put function

parent 227cdd76
No related branches found
No related tags found
Loading
......@@ -377,18 +377,14 @@ func (w *wasmModel) receiveHelper(newMessage *Message, isUpdate bool) (uint64,
}
// Store message to database
addReq, err := indexedDb.Put(w.db, messageStoreName, messageObj)
result, err := indexedDb.Put(w.db, messageStoreName, messageObj)
if err != nil {
return 0, errors.Errorf("Unable to put Message: %+v", err)
}
res, err := addReq.Result()
if err != nil {
return 0, errors.Errorf("Unable to get Message result: %+v", err)
}
// NOTE: Sometimes the insert fails to return an error but hits a duplicate
// insert, so this fallthrough returns the UUID entry in that case.
if res.IsUndefined() {
if result.IsUndefined() {
msgID := message.ID{}
copy(msgID[:], newMessage.MessageID)
uuid, errLookup := w.msgIDLookup(msgID)
......@@ -397,7 +393,7 @@ func (w *wasmModel) receiveHelper(newMessage *Message, isUpdate bool) (uint64,
}
return 0, errors.Errorf("uuid lookup failure: %+v", err)
}
uuid := uint64(res.Int())
uuid := uint64(result.Int())
jww.DEBUG.Printf("Successfully stored message %d", uuid)
return uuid, nil
......
......@@ -341,18 +341,14 @@ func (w *wasmModel) receiveHelper(newMessage *Message, isUpdate bool) (uint64,
}
// Store message to database
addReq, err := indexedDb.Put(w.db, messageStoreName, messageObj)
result, err := indexedDb.Put(w.db, messageStoreName, messageObj)
if err != nil {
return 0, errors.Errorf("Unable to put Message: %+v", err)
}
res, err := addReq.Result()
if err != nil {
return 0, errors.Errorf("Unable to get Message result: %+v", err)
}
// NOTE: Sometimes the insert fails to return an error but hits a duplicate
// insert, so this fallthrough returns the UUID entry in that case.
if res.IsUndefined() {
if result.IsUndefined() {
msgID := message.ID{}
copy(msgID[:], newMessage.MessageID)
uuid, errLookup := w.msgIDLookup(msgID)
......@@ -361,7 +357,7 @@ func (w *wasmModel) receiveHelper(newMessage *Message, isUpdate bool) (uint64,
}
return 0, errors.Errorf("uuid lookup failure: %+v", err)
}
uuid := uint64(res.Int())
uuid := uint64(result.Int())
jww.DEBUG.Printf("Successfully stored message %d", uuid)
return uuid, nil
......
......@@ -127,33 +127,33 @@ func GetIndex(db *idb.Database, objectStoreName string,
// Put is a generic helper for putting values into the given [idb.ObjectStore].
// Equivalent to insert if not exists else update.
func Put(db *idb.Database, objectStoreName string, value js.Value) (*idb.Request, error) {
func Put(db *idb.Database, objectStoreName string, value js.Value) (js.Value, error) {
// Prepare the Transaction
txn, err := db.Transaction(idb.TransactionReadWrite, objectStoreName)
if err != nil {
return nil, errors.Errorf("Unable to create Transaction: %+v", err)
return js.Undefined(), errors.Errorf("Unable to create Transaction: %+v", err)
}
store, err := txn.ObjectStore(objectStoreName)
if err != nil {
return nil, errors.Errorf("Unable to get ObjectStore: %+v", err)
return js.Undefined(), errors.Errorf("Unable to get ObjectStore: %+v", err)
}
// Perform the operation
request, err := store.Put(value)
if err != nil {
return nil, errors.Errorf("Unable to Put: %+v", err)
return js.Undefined(), errors.Errorf("Unable to Put: %+v", err)
}
// Wait for the operation to return
ctx, cancel := NewContext()
err = txn.Await(ctx)
result, err := request.Await(ctx)
cancel()
if err != nil {
return nil, errors.Errorf("Putting value failed: %+v", err)
return js.Undefined(), errors.Errorf("Putting value failed: %+v", err)
}
jww.DEBUG.Printf("Successfully put value in %s: %v",
objectStoreName, utils.JsToJson(value))
return request, nil
return result, nil
}
// Delete is a generic helper for removing values from the given [idb.ObjectStore].
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment