diff options
author | Steve <nilslice@gmail.com> | 2017-03-15 13:55:55 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-15 13:55:55 -0700 |
commit | 1a62c2bfe3cec71391e51f0c59b6c008179b7e89 (patch) | |
tree | 18a1a89076303acf3d2be40aa4ca371ed27ede3a /system/db/content.go | |
parent | 0eaddb8ae0b29937f7514cc83c63e0aa3c377850 (diff) | |
parent | 5ec811b5d1899cfe538ed6d19c8a5ee01a553f03 (diff) |
Merge pull request #99 from ponzu-cms/ponzu-dev
[core] Add api.Deleteable interface, rename Externalable to Createable and rename methods
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 } |