MCPcopy
hub / github.com/dnote/dnote / stepSyncNote

Function stepSyncNote

pkg/cli/cmd/sync/sync.go:364–386  ·  view source on GitHub ↗
(tx *database.DB, n client.SyncFragNote)

Source from the content-addressed store, hash-verified

362}
363
364func stepSyncNote(tx *database.DB, n client.SyncFragNote) error {
365 var localNote database.Note
366 err := tx.QueryRow("SELECT body, usn, book_uuid, dirty, deleted FROM notes WHERE uuid = ?", n.UUID).
367 Scan(&localNote.Body, &localNote.USN, &localNote.BookUUID, &localNote.Dirty, &localNote.Deleted)
368 if err != nil && err != sql.ErrNoRows {
369 return errors.Wrapf(err, "getting local note %s", n.UUID)
370 }
371
372 // if note exists in the server and does not exist in the client, insert the note.
373 if err == sql.ErrNoRows {
374 note := database.NewNote(n.UUID, n.BookUUID, n.Body, n.AddedOn, n.EditedOn, n.USN, n.Deleted, false)
375
376 if err := note.Insert(tx); err != nil {
377 return errors.Wrapf(err, "inserting note with uuid %s", n.UUID)
378 }
379 } else {
380 if err := mergeNote(tx, n, localNote); err != nil {
381 return errors.Wrap(err, "merging local note")
382 }
383 }
384
385 return nil
386}
387
388func fullSyncNote(tx *database.DB, n client.SyncFragNote) error {
389 var localNote database.Note

Callers 2

stepSyncFunction · 0.85
TestStepSyncNoteFunction · 0.85

Calls 4

InsertMethod · 0.95
NewNoteFunction · 0.92
mergeNoteFunction · 0.85
QueryRowMethod · 0.65

Tested by 1

TestStepSyncNoteFunction · 0.68