diff options
author | default <nobody@localhost> | 2022-11-24 08:36:01 +0100 |
---|---|---|
committer | default <nobody@localhost> | 2022-11-24 08:36:01 +0100 |
commit | b0b052ab3b724ded9b13e2703dc7f0138a0b9a4f (patch) | |
tree | 7489c5cfa1a8718ef925b142d612718e70bb66be /data.c | |
parent | b23c6d98b6fe2b9052072faa7d89b81f0a72be00 (diff) |
Function object_del() also deletes the indexes.
Diffstat (limited to 'data.c')
-rw-r--r-- | data.c | 19 |
1 files changed, 17 insertions, 2 deletions
@@ -424,10 +424,23 @@ int object_del(const char *id) int status = 404; xs *fn = _object_fn(id); - if (fn != NULL && unlink(fn) != -1) + if (fn != NULL && unlink(fn) != -1) { status = 200; - srv_debug(2, xs_fmt("object_del %s %d", id, status)); + /* also delete associated indexes */ + xs *spec = _object_fn(id); + spec = xs_replace_i(spec, ".json", "*.idx"); + xs *files = xs_glob(spec, 0, 0); + char *p, *v; + + p = files; + while (xs_list_iter(&p, &v)) { + srv_debug(0, xs_fmt("object_del index %s", v)); + unlink(v); + } + } + + srv_debug(0, xs_fmt("object_del %s %d", id, status)); return status; } @@ -601,6 +614,8 @@ int timeline_del(snac *snac, char *id) ret = 200; } + object_del(id); + return ret; } |