adjust to work with datomic backend that does not use ids
This commit is contained in:
parent
ea4e78a737
commit
f7d5762b77
5 changed files with 16 additions and 16 deletions
|
|
@ -14,15 +14,15 @@
|
||||||
(let [params (if limit {:limit limit} {})]
|
(let [params (if limit {:limit limit} {})]
|
||||||
(get-request "/api/snippets" params)))
|
(get-request "/api/snippets" params)))
|
||||||
|
|
||||||
(defn fetch-snippet [id]
|
(defn fetch-snippet [slug]
|
||||||
(get-request "/api/snippet" {:id id}))
|
(get-request "/api/snippet-by-slug" {:slug slug}))
|
||||||
|
|
||||||
(defn delete-snippet [id]
|
(defn delete-snippet [slug]
|
||||||
(http/delete (str (:backend-host config) "/api/snippet") {:query-params {"id" id}}))
|
(http/delete (str (:backend-host config) "/api/snippet") {:query-params {"slug" slug}}))
|
||||||
|
|
||||||
(defn update-snippet [id patch]
|
(defn update-snippet [slug patch]
|
||||||
(http/patch (str (:backend-host config) "/api/snippet")
|
(http/patch (str (:backend-host config) "/api/snippet")
|
||||||
{:query-params {:id id}
|
{:query-params {:slug slug}
|
||||||
:headers {:accept "application/edn"
|
:headers {:accept "application/edn"
|
||||||
:content-type "application/edn"}
|
:content-type "application/edn"}
|
||||||
:body (pr-str patch)}))
|
:body (pr-str patch)}))
|
||||||
|
|
|
||||||
|
|
@ -15,9 +15,9 @@
|
||||||
{:name "get_snippet"
|
{:name "get_snippet"
|
||||||
:description "Get a specific snippet by id, including body, tags, slug, title, and other details"
|
:description "Get a specific snippet by id, including body, tags, slug, title, and other details"
|
||||||
:inputSchema {:type "object"
|
:inputSchema {:type "object"
|
||||||
:properties {:id {:type "string"
|
:properties {:slug {:type "string"
|
||||||
:description "The id of the snippet to retrieve"}}
|
:description "The slug of the snippet to retrieve"}}
|
||||||
:required ["id"]}}
|
:required ["slug"]}}
|
||||||
{:name "create_snippet"
|
{:name "create_snippet"
|
||||||
:description "Create a new code snippet with title, slug, markdown content, and tags"
|
:description "Create a new code snippet with title, slug, markdown content, and tags"
|
||||||
:inputSchema {:type "object"
|
:inputSchema {:type "object"
|
||||||
|
|
@ -47,8 +47,8 @@
|
||||||
(let [snippets (fetch-snippets)]
|
(let [snippets (fetch-snippets)]
|
||||||
{:snippets (map #(select-keys % [:id :title :slug :tags]) snippets)}))
|
{:snippets (map #(select-keys % [:id :title :slug :tags]) snippets)}))
|
||||||
|
|
||||||
(defn get-snippet-impl [id]
|
(defn get-snippet-impl [slug]
|
||||||
(let [snippet (fetch-snippet id)]
|
(let [snippet (fetch-snippet slug)]
|
||||||
{:snippet snippet}))
|
{:snippet snippet}))
|
||||||
|
|
||||||
(defn create-snippet-impl [{:keys [title slug markdown tags]}]
|
(defn create-snippet-impl [{:keys [title slug markdown tags]}]
|
||||||
|
|
@ -68,7 +68,7 @@
|
||||||
:id id
|
:id id
|
||||||
:result (case tool-name
|
:result (case tool-name
|
||||||
"list_snippets" (mcp-res list-snippets-impl [])
|
"list_snippets" (mcp-res list-snippets-impl [])
|
||||||
"get_snippet" (mcp-res get-snippet-impl [(:id tool-input)])
|
"get_snippet" (mcp-res get-snippet-impl [(:slug tool-input)])
|
||||||
"create_snippet" (mcp-res create-snippet-impl [tool-input])
|
"create_snippet" (mcp-res create-snippet-impl [tool-input])
|
||||||
{:error (str "Unknown tool: " tool-name)})})
|
{:error (str "Unknown tool: " tool-name)})})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,4 +5,4 @@
|
||||||
|
|
||||||
(defn run []
|
(defn run []
|
||||||
(let [selected-snippet (utils/select (map #(hash-map :value (:slug %) :item %) (fetch-snippets)))]
|
(let [selected-snippet (utils/select (map #(hash-map :value (:slug %) :item %) (fetch-snippets)))]
|
||||||
(delete-snippet (:id selected-snippet))))
|
(delete-snippet (:slug selected-snippet))))
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,6 @@
|
||||||
|
|
||||||
(defn run []
|
(defn run []
|
||||||
(let [snippet-to-edit (utils/select (map #(hash-map :value (:slug %) :item %) (fetch-snippets)))]
|
(let [snippet-to-edit (utils/select (map #(hash-map :value (:slug %) :item %) (fetch-snippets)))]
|
||||||
(update-snippet (:id snippet-to-edit) (edit snippet-to-edit))
|
(update-snippet (:slug snippet-to-edit) (edit snippet-to-edit))
|
||||||
(println "Snippet updated successfully")
|
(println "Snippet updated successfully")
|
||||||
(view/view (fetch-snippet (:id snippet-to-edit)))))
|
(view/view (fetch-snippet (:slug snippet-to-edit)))))
|
||||||
|
|
|
||||||
|
|
@ -13,4 +13,4 @@
|
||||||
|
|
||||||
(defn run []
|
(defn run []
|
||||||
(let [snippet-to-view (utils/select (map #(hash-map :value (:slug %) :item %) (fetch-snippets 25)))]
|
(let [snippet-to-view (utils/select (map #(hash-map :value (:slug %) :item %) (fetch-snippets 25)))]
|
||||||
(view (fetch-snippet (:id snippet-to-view)))))
|
(view (fetch-snippet (:slug snippet-to-view)))))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue