From fc0dd204c7b28a72e813e32d0897742905d675cd Mon Sep 17 00:00:00 2001 From: Travis Shears Date: Thu, 5 Jun 2025 16:07:22 +0200 Subject: [PATCH] add xtdb --- deps.edn | 7 ++++++- src/snippets/config.clj | 13 +++++++++++++ src/snippets/core.clj | 1 + src/snippets/db.clj | 21 +++++++++++++++++++++ 4 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 src/snippets/config.clj create mode 100644 src/snippets/core.clj create mode 100644 src/snippets/db.clj diff --git a/deps.edn b/deps.edn index 783227e..d8a5e68 100644 --- a/deps.edn +++ b/deps.edn @@ -4,7 +4,12 @@ ;; logging, required by jetty: org.slf4j/slf4j-simple {:mvn/version "2.0.16"} - ;; json decoding + ;; db + com.xtdb/xtdb-api {:mvn/version "2.0.0-beta9"} + com.github.seancorfield/next.jdbc {:mvn/version "1.3.1002"} + org.postgresql/postgresql {:mvn/version "42.7.6"} + +;; json decoding metosin/muuntaja {:mvn/version "0.6.11"} ;; routing: diff --git a/src/snippets/config.clj b/src/snippets/config.clj new file mode 100644 index 0000000..080db58 --- /dev/null +++ b/src/snippets/config.clj @@ -0,0 +1,13 @@ +(ns snippets.config) + +;; (require '[environ.core :refer [env]]) +(defn get-config [] (read-string (slurp "config.edn"))) + +;; (def config +;; (merge +;; (read-string (slurp "config.edn")) + ;; {:db {:host (env :db-host) + ;; :port (Integer. (env :db-port)) + ;; :user (env :db-user) + ;; :password (env :db-password) + ;; :dbname (env :db-name)}})) diff --git a/src/snippets/core.clj b/src/snippets/core.clj new file mode 100644 index 0000000..9ac9c0f --- /dev/null +++ b/src/snippets/core.clj @@ -0,0 +1 @@ +(ns snippets.core) diff --git a/src/snippets/db.clj b/src/snippets/db.clj new file mode 100644 index 0000000..c376378 --- /dev/null +++ b/src/snippets/db.clj @@ -0,0 +1,21 @@ +(ns snippets.db + (:require + [snippets.config :as config] + [xtdb.api :as xt])) + +(def client + (let + [c (:xtdb (config/get-config))] + (xt/client + {:host (:host c) + :port (:port c) + :user "xtdb" + ;; :password "xtdb" + :dbname "xtdb"}))) + +(defn uuid [] (str (java.util.UUID/randomUUID))) + +(defn save-snippet [snippet] + (xt/execute-tx client [[:put-docs :snippets (merge snippet {:xt/id (uuid)})]])) + +;; (xt/q client ['(from :users [{:name "travis"}])])