add delete command
This commit is contained in:
parent
f2e435b777
commit
53acc339b3
3 changed files with 43 additions and 4 deletions
|
|
@ -1,10 +1,14 @@
|
|||
(ns cli-cms.cli-utils
|
||||
(:require
|
||||
[clojure.string :as str]
|
||||
[clojure.pprint :refer [pprint]]
|
||||
[babashka.process :refer [shell]]))
|
||||
|
||||
(defn print [text]
|
||||
(shell (format "gum style --foreground 212 %s" text)))
|
||||
(defn select [l]
|
||||
(str/trim (:out (apply shell {:out :string} (concat '("gum" "filter") l)))))
|
||||
|
||||
;; (defn print [text]
|
||||
;; (shell (format "gum style --foreground 212 %s" text)))
|
||||
|
||||
(defn prompt-for [placeholder]
|
||||
(str/trim (-> (shell {:out :string} (format "gum input --placeholder='%s'" placeholder)) :out)))
|
||||
|
|
|
|||
34
src/cli_cms/delete.clj
Normal file
34
src/cli_cms/delete.clj
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
(ns cli-cms.delete
|
||||
(:require
|
||||
[cli-cms.cli-utils :as utils]
|
||||
[clojure.pprint :refer [pprint]]
|
||||
[babashka.http-client :as http]
|
||||
[cheshire.core :as json]))
|
||||
|
||||
;; (defn create-snippet [{:keys [title slug markdown tags]}]
|
||||
;; (http/post "http://localhost:8080/api/snippet"
|
||||
;; {:headers {:content-type "application/json"}
|
||||
;; :body (json/encode {:title title :slug slug :markdown markdown :tags tags})}))
|
||||
;;
|
||||
|
||||
(defn fetch-snippets []
|
||||
(let [res (http/get "http://localhost:8080/api/snippet?limit=25")]
|
||||
(json/parse-string (:body res) true)))
|
||||
|
||||
(defn delete-snippet [id]
|
||||
(http/delete "http://localhost:8080/api/snippet" {:query-params {"id" id}}))
|
||||
|
||||
(defn run []
|
||||
(let [snippets (fetch-snippets)
|
||||
selected-slug (utils/select (map :slug snippets))
|
||||
selected-snippet (first (filter #(= (:slug %) selected-slug) snippets))]
|
||||
(delete-snippet (:id selected-snippet))))
|
||||
|
||||
;; (some #(when (> % 5) %) [1 3 7 2])
|
||||
;; (some #(when) (utils/select (map :slug snippets)))))
|
||||
;; (utils/print "Please enter a title:")
|
||||
;; (println "Please enter a title:")
|
||||
;; (println (format "TODO: create post with title: %s and slug %s" title slug))
|
||||
;; (println tags)
|
||||
;; (println markdown)
|
||||
;; (create-snippet {:title title :slug slug :markdown markdown :tags tags})))
|
||||
|
|
@ -1,10 +1,11 @@
|
|||
(ns cli-cms.main
|
||||
(:require
|
||||
[cli-cms.create :as create]
|
||||
[babashka.http-client :as http]))
|
||||
[cli-cms.delete :as delete]))
|
||||
|
||||
(defn -main [& args]
|
||||
(case (first args)
|
||||
"create" (create/run)
|
||||
"delete" (delete/run)
|
||||
"edit" (println "TODO: implment edit snippet")
|
||||
(println "Missing command. Try 'create' or 'edit'.")))
|
||||
(println "Missing command. Try create, edit, or delete.")))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue