move towards "Clean Arch"
This commit is contained in:
parent
7bbee5b0fb
commit
f58db3d88b
8 changed files with 38 additions and 32 deletions
|
|
@ -1,10 +1,12 @@
|
|||
(ns snippets.api
|
||||
(ns snippets.infra.api
|
||||
(:require
|
||||
[ring.adapter.jetty :as jetty]
|
||||
[clojure.pprint :as pprint]
|
||||
[taoensso.telemere :as t]
|
||||
[snippets.core :as core]
|
||||
[snippets.config :as config]
|
||||
[snippets.use-cases.view]
|
||||
[snippets.use-cases.delete]
|
||||
[snippets.use-cases.create]
|
||||
[snippets.infra.config :as config]
|
||||
[muuntaja.middleware :as mm]
|
||||
[ring.middleware.params]
|
||||
[reitit.ring :as rr]))
|
||||
|
|
@ -15,23 +17,23 @@
|
|||
|
||||
(defn handle-create-snippet [{body :body-params}]
|
||||
(t/log! {:level :info, :data {:body body}} "Received request to create snippet")
|
||||
(core/create-snippet body)
|
||||
(snippets.use-cases.create/create-snippet body)
|
||||
{:status 200, :body "snippet created"})
|
||||
|
||||
(defn handle-view-snippets [{params :query-params}]
|
||||
(let [limit (Integer/parseInt (get params "limit" "10"))
|
||||
skip (Integer/parseInt (get params "skip" "0"))]
|
||||
{:status 200
|
||||
:body (core/view-snippets {:limit limit :skip skip})}))
|
||||
:body (snippets.use-cases.view/view-snippets {:limit limit :skip skip})}))
|
||||
|
||||
(defn handle-view-snippet [{params :query-params}]
|
||||
(let [id (get params "id")]
|
||||
{:status 200
|
||||
:body (core/view-snippet id)}))
|
||||
:body (snippets.use-cases.view/view-snippet id)}))
|
||||
|
||||
(defn handle-delete-snippet [{params :query-params}]
|
||||
(let [id (get params "id")]
|
||||
(core/delete-snippet id)
|
||||
(snippets.use-cases.delete/delete-snippet id)
|
||||
{:status 200
|
||||
:body (format "Deleted snippet with id: %s if it existed" id)}))
|
||||
|
||||
|
|
@ -52,14 +54,6 @@
|
|||
:delete handle-delete-snippet}]])
|
||||
(rr/create-default-handler)))
|
||||
|
||||
;; (defroutes app-routes
|
||||
;; (GET "/" [] "Hello World")
|
||||
;; (route/not-found "Not Found"))
|
||||
|
||||
;; (def app
|
||||
;; ;; use #' prefix for REPL-friendly code -- see note below
|
||||
;; (wrap-defaults #'app-routes site-defaults))
|
||||
;;
|
||||
(defn run-server []
|
||||
(let [jetty-config (:jetty (config/get-config))
|
||||
port (:port jetty-config)
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
(ns snippets.config
|
||||
(ns snippets.infra.config
|
||||
(:require [environ.core :refer [env]]))
|
||||
|
||||
(defn- static-config [] (read-string (slurp "config.edn")))
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
(ns snippets.db
|
||||
(ns snippets.infra.db
|
||||
(:require
|
||||
[taoensso.telemere :as t]
|
||||
[snippets.config :as config]
|
||||
[snippets.infra.config :as config]
|
||||
[xtdb.api :as xt]))
|
||||
|
||||
(def client
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
(ns snippets.backfill
|
||||
(ns snippets.use-cases.backfill-from-file
|
||||
(:require
|
||||
[clojure.java.io :as io]
|
||||
[clojure.pprint :as pprint]
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
(ns snippets.core
|
||||
(ns snippets.use-cases.create
|
||||
(:require
|
||||
[taoensso.telemere :as t]
|
||||
[snippets.db :as db]))
|
||||
[snippets.infra.db :as db]))
|
||||
|
||||
(defn- uuid [] (str (java.util.UUID/randomUUID)))
|
||||
|
||||
|
|
@ -10,14 +10,3 @@
|
|||
pub-date (java.util.Date.)]
|
||||
(t/log! {:level :info, :data {:title title :slug slug :id id}} "Creating snippet")
|
||||
(db/put-snippet id {:title title :slug slug :markdown markdown :tags tags :pub-date pub-date})))
|
||||
|
||||
(defn view-snippet [key]
|
||||
(t/log! {:level :info, :data {:key key}} "Viewing snippet by id")
|
||||
(db/get-snippet-by-id key))
|
||||
|
||||
(defn view-snippets [& args]
|
||||
(db/list-snippets args))
|
||||
|
||||
(defn delete-snippet [key]
|
||||
(t/log! {:level :info, :data {:key key}} "Deleting snippet by id")
|
||||
(db/delete-snippet key))
|
||||
8
src/snippets/use_cases/delete.clj
Normal file
8
src/snippets/use_cases/delete.clj
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
(ns snippets.use-cases.delete
|
||||
(:require
|
||||
[snippets.infra.db :as db]
|
||||
[taoensso.telemere :as t]))
|
||||
|
||||
(defn delete-snippet [key]
|
||||
(t/log! {:level :info, :data {:key key}} "Deleting snippet by id")
|
||||
(db/delete-snippet key))
|
||||
4
src/snippets/use_cases/edit.clj
Normal file
4
src/snippets/use_cases/edit.clj
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
(ns snippets.use-cases.edit
|
||||
(:require
|
||||
[taoensso.telemere :as t]
|
||||
[snippets.infra.db :as db]))
|
||||
11
src/snippets/use_cases/view.clj
Normal file
11
src/snippets/use_cases/view.clj
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
(ns snippets.use-cases.view
|
||||
(:require
|
||||
[taoensso.telemere :as t]
|
||||
[snippets.infra.db :as db]))
|
||||
|
||||
(defn view-snippet [key]
|
||||
(t/log! {:level :info, :data {:key key}} "Viewing snippet by id")
|
||||
(db/get-snippet-by-id key))
|
||||
|
||||
(defn view-snippets [& args]
|
||||
(db/list-snippets args))
|
||||
Loading…
Add table
Add a link
Reference in a new issue