Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
22efb3d523
1 changed files with 32 additions and 0 deletions
|
@ -21,6 +21,7 @@ import (
|
|||
"errors"
|
||||
"fmt"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
|
@ -190,6 +191,8 @@ func performTx(tx *Transaction) (ret *TxErr) {
|
|||
ret = tx.doUnfoldHeading(op)
|
||||
case "setAttrs":
|
||||
ret = tx.doSetAttrs(op)
|
||||
case "doUpdateUpdated":
|
||||
ret = tx.doUpdateUpdated(op)
|
||||
case "addFlashcards":
|
||||
ret = tx.doAddFlashcards(op)
|
||||
case "removeFlashcards":
|
||||
|
@ -987,6 +990,35 @@ func (tx *Transaction) doUpdate(operation *Operation) (ret *TxErr) {
|
|||
return
|
||||
}
|
||||
|
||||
func (tx *Transaction) doUpdateUpdated(operation *Operation) (ret *TxErr) {
|
||||
id := operation.ID
|
||||
tree, err := tx.loadTree(id)
|
||||
if nil != err {
|
||||
if errors.Is(err, ErrBlockNotFound) {
|
||||
logging.LogWarnf("not found block [%s]", id)
|
||||
return
|
||||
}
|
||||
|
||||
logging.LogErrorf("load tree [%s] failed: %s", id, err)
|
||||
return &TxErr{code: TxErrCodeBlockNotFound, id: id}
|
||||
}
|
||||
|
||||
node := treenode.GetNodeInTree(tree, id)
|
||||
if nil == node {
|
||||
logging.LogErrorf("get node [%s] in tree [%s] failed", id, tree.Root.ID)
|
||||
return &TxErr{msg: ErrBlockNotFound.Error(), id: id}
|
||||
}
|
||||
|
||||
updated := int64(operation.Data.(float64))
|
||||
node.SetIALAttr("updated", strconv.FormatInt(updated, 10))
|
||||
createdUpdated(node)
|
||||
tx.nodes[node.ID] = node
|
||||
if err = tx.writeTree(tree); nil != err {
|
||||
return &TxErr{code: TxErrCodeWriteTree, msg: err.Error(), id: id}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (tx *Transaction) doCreate(operation *Operation) (ret *TxErr) {
|
||||
tree := operation.Data.(*parse.Tree)
|
||||
tx.writeTree(tree)
|
||||
|
|
Loading…
Add table
Reference in a new issue