diff --git a/src/snippets/infra/config.clj b/src/snippets/infra/config.clj index c010003..56a9e41 100644 --- a/src/snippets/infra/config.clj +++ b/src/snippets/infra/config.clj @@ -14,5 +14,7 @@ (defn get-config [] (-> (static-config) + (assoc-in-not-nil [:datomic :storage-dir] (env :datomic-path)) + (assoc-in-not-nil [:datomic :system] (env :datomic-env)) (assoc-in-not-nil [:jetty :host] (env :host)) (assoc-in-not-nil [:jetty :port] (safe-parse-int (env :port))))) diff --git a/src/snippets/infra/db2.clj b/src/snippets/infra/db2.clj index 134f93a..277961c 100644 --- a/src/snippets/infra/db2.clj +++ b/src/snippets/infra/db2.clj @@ -3,14 +3,18 @@ [clojure.set :as set] [datomic.client.api :as d] [malli.core :as m] + [snippets.infra.config :as config] [taoensso.telemere :as t])) ;; Initialize the Datomic Local client ;; :system "dev" groups your databases in the "dev" system ;; In production, you'd set :storage-dir to a persistent path ;; TODO: add save file location for prod -(def client (d/client {:server-type :datomic-local - :system "dev"})) + +(def datomic-config (:datomic (config/get-config))) + +(def client (d/client (merge {:server-type :datomic-local + :system "dev"} datomic-config))) (def db-name "snippets") @@ -102,7 +106,7 @@ [entity] (m/validate create-schema entity)) -(defn- put-snippets +(defn create-snippets "Create new snippets in the database." [snippets] (t/log! {:level :info, :data {:slugs (map :slug snippets)}} "Saving new snippets to db") @@ -112,9 +116,6 @@ (d/transact conn {:tx-data entities}) (throw (ex-info "Invalid snippet entity" {:entities entities}))))) -(def create-snippets - (wrap-snippet-return put-snippets)) - ;; read (defn- get-snippet-by-slug-from-db "Get a single snippet by its slug."