From 3b8689047ea6c38d1033b391f1598d40b1341103 Mon Sep 17 00:00:00 2001 From: Steve Manuel Date: Tue, 18 Oct 2016 13:18:55 -0700 Subject: updating sort logic on Less and storing sorted values in _sorted bucket --- system/db/content.go | 52 ++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 40 insertions(+), 12 deletions(-) diff --git a/system/db/content.go b/system/db/content.go index 99d662b..524097a 100644 --- a/system/db/content.go +++ b/system/db/content.go @@ -225,22 +225,50 @@ func SortContent(namespace string) { posts = append(posts, post.(editor.Sortable)) } - fmt.Println("-------------------------UN-SORTED------------------------") - - for i := range posts { - fmt.Printf("%v\n", posts[i]) - } - fmt.Println("------------------------NOW SORTED------------------------") - // sort posts sort.Sort(posts) - for i := range posts { - fmt.Printf("%v\n", posts[i]) - } + // store in _sorted bucket, first delete existing + err := store.Update(func(tx *bolt.Tx) error { + err := tx.DeleteBucket([]byte(namespace + "_sorted")) + if err != nil { + return err + } + + b, err := tx.CreateBucket([]byte(namespace + "_sorted")) + if err != nil { + err := tx.Rollback() + if err != nil { + return err + } - // one by one, encode to json and store as - // store in __sorted bucket, first delete existing + return err + } + + // encode to json and store as post.ID:post + for _, post := range posts { + j, err := json.Marshal(post) + if err != nil { + return err + } + + cid := fmt.Sprintf("%d", post.ContentID()) + err = b.Put([]byte(cid), j) + if err != nil { + err := tx.Rollback() + if err != nil { + return err + } + + return err + } + } + + return nil + }) + if err != nil { + log.Println("Error while updating db with sorted", namespace) + } } -- cgit v1.2.3