Skip to content

Commit

Permalink
🎨 Supports searching database view content #9419
Browse files Browse the repository at this point in the history
  • Loading branch information
88250 committed Oct 13, 2023
1 parent a11ea9c commit c3d1c04
Showing 1 changed file with 32 additions and 0 deletions.
32 changes: 32 additions & 0 deletions kernel/model/transaction.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import (
"errors"
"fmt"
"path/filepath"
"strconv"
"strings"
"sync"
"time"
Expand Down Expand Up @@ -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":
Expand Down Expand Up @@ -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)
Expand Down

0 comments on commit c3d1c04

Please sign in to comment.