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
|
(ns cli-cms.cli-utils
|
||||||
(:require
|
(:require
|
||||||
[clojure.string :as str]
|
[clojure.string :as str]
|
||||||
|
[clojure.pprint :refer [pprint]]
|
||||||
[babashka.process :refer [shell]]))
|
[babashka.process :refer [shell]]))
|
||||||
|
|
||||||
(defn print [text]
|
(defn select [l]
|
||||||
(shell (format "gum style --foreground 212 %s" text)))
|
(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]
|
(defn prompt-for [placeholder]
|
||||||
(str/trim (-> (shell {:out :string} (format "gum input --placeholder='%s'" placeholder)) :out)))
|
(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
|
(ns cli-cms.main
|
||||||
(:require
|
(:require
|
||||||
[cli-cms.create :as create]
|
[cli-cms.create :as create]
|
||||||
[babashka.http-client :as http]))
|
[cli-cms.delete :as delete]))
|
||||||
|
|
||||||
(defn -main [& args]
|
(defn -main [& args]
|
||||||
(case (first args)
|
(case (first args)
|
||||||
"create" (create/run)
|
"create" (create/run)
|
||||||
|
"delete" (delete/run)
|
||||||
"edit" (println "TODO: implment edit snippet")
|
"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