allow for deleting all tags on a snippet

This commit is contained in:
Travis Shears 2026-03-12 08:16:41 +01:00
parent 9c0b8bef3c
commit aeefd4a157
Signed by: travisshears
GPG key ID: CB9BF1910F3F7469
5 changed files with 10 additions and 6 deletions

View file

@ -1,7 +1,7 @@
meta { meta {
name: delete_snippet name: delete_snippet
type: http type: http
seq: 5 seq: 6
} }
delete { delete {

View file

@ -1,7 +1,7 @@
meta { meta {
name: get_snippet_by_slug name: get_snippet
type: http type: http
seq: 10 seq: 5
} }
get { get {

View file

@ -1,7 +1,7 @@
meta { meta {
name: ping name: ping
type: http type: http
seq: 1 seq: 2
} }
get { get {

View file

@ -163,7 +163,9 @@
new-tags (get raw-patch :tags '[]) new-tags (get raw-patch :tags '[])
existing-tags (get snippet :snippet/tags '[]) existing-tags (get snippet :snippet/tags '[])
tags-to-remove (vec (set/difference (set existing-tags) (set new-tags))) tags-to-remove (vec (set/difference (set existing-tags) (set new-tags)))
retracts (map #(vector :db/retract eid :snippet/tags %) tags-to-remove) retracts (if (nil? (:tags raw-patch))
nil
(map #(vector :db/retract eid :snippet/tags %) tags-to-remove))
patch (merge (to-update raw-patch) {:db/id eid})] patch (merge (to-update raw-patch) {:db/id eid})]
(t/log! {:level :info, :data {:patch patch :retracts retracts :slug slug :eid eid}} "Patching snippet") (t/log! {:level :info, :data {:patch patch :retracts retracts :slug slug :eid eid}} "Patching snippet")
(when (nil? eid) (when (nil? eid)

View file

@ -7,7 +7,9 @@
"Converts snippet pub-date to ISO-8601 string for EDN serialization" "Converts snippet pub-date to ISO-8601 string for EDN serialization"
[snippet] [snippet]
(when snippet (when snippet
(assoc snippet :pub-date (.toString (:pub-date snippet))))) (-> snippet
(assoc :tags (if (nil? (:tags snippet)) '[] (:tags snippet)))
(assoc :pub-date (.toString (:pub-date snippet))))))
(defn view-snippets [options] (defn view-snippets [options]
(let [limit (:limit options) (let [limit (:limit options)