diff options
author | Steve Manuel <nilslice@gmail.com> | 2017-03-15 12:49:03 -0700 |
---|---|---|
committer | Steve Manuel <nilslice@gmail.com> | 2017-03-15 12:49:03 -0700 |
commit | 8684ca00eedc5799ae954f8149d4beeeb8e236bf (patch) | |
tree | 70e4f4306502171e15ccf7aafd41fa9dfadf7b4d /system/db/content.go | |
parent | 4f90b228e1f145340ae4c9a6fc83b2a2cf0a86fa (diff) |
updating DeleteContent signature to remove requirement of url.Values, will instead to a lookup in content before the delete to get slug, etc
Diffstat (limited to 'system/db/content.go')
-rw-r--r-- | system/db/content.go | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/system/db/content.go b/system/db/content.go index dd93c60..8a91828 100644 --- a/system/db/content.go +++ b/system/db/content.go @@ -228,11 +228,25 @@ func insert(ns string, data url.Values) (int, error) { // DeleteContent removes an item from the database. Deleting a non-existent item // will return a nil error. -func DeleteContent(target string, data url.Values) error { +func DeleteContent(target string) error { t := strings.Split(target, ":") ns, id := t[0], t[1] - err := store.Update(func(tx *bolt.Tx) error { + b, err := Content(target) + if err != nil { + return err + } + + // get content slug to delete from __contentIndex if it exists + // this way content added later can use slugs even if previously + // deleted content had used one + var itm item.Item + err = json.Unmarshal(b, &itm) + if err != nil { + return err + } + + err = store.Update(func(tx *bolt.Tx) error { b := tx.Bucket([]byte(ns)) if b == nil { return bolt.ErrBucketNotFound @@ -244,14 +258,13 @@ func DeleteContent(target string, data url.Values) error { } // if content has a slug, also delete it from __contentIndex - slug := data.Get("slug") - if slug != "" { + if itm.Slug != "" { ci := tx.Bucket([]byte("__contentIndex")) if ci == nil { return bolt.ErrBucketNotFound } - err := ci.Delete([]byte(slug)) + err := ci.Delete([]byte(itm.Slug)) if err != nil { return err } |