summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoreltrac <hi@eltr.ac>2026-05-12 11:04:16 +0800
committereltrac <hi@eltr.ac>2026-05-12 11:04:16 +0800
commite45d411450dd9d8edbd591bc10beba119495b80b (patch)
treedb299cc1f7d52bbc13e4c9b0c989d787b4c50519 /src
parent05c3307dd81ba80c1995969649eb959d905838b6 (diff)
refactor(storage): make storage vtable in its ns
Diffstat (limited to 'src')
-rw-r--r--src/weepinbell/core.clj9
-rw-r--r--src/weepinbell/storage/edn_storage.clj (renamed from src/weepinbell/storage.clj)12
2 files changed, 12 insertions, 9 deletions
diff --git a/src/weepinbell/core.clj b/src/weepinbell/core.clj
index c88f704..dab73ae 100644
--- a/src/weepinbell/core.clj
+++ b/src/weepinbell/core.clj
@@ -6,15 +6,10 @@
[weepinbell.config :refer [get-config load-config]]
[weepinbell.webhook :as webhook]
[taoensso.timbre :as timbre]
- [weepinbell.storage :as storage])
+ [weepinbell.storage.edn-storage :as edn])
(:gen-class)) ;; Essential for "lein uberjar"
-(def datasource (get-config :data-path))
-(def store {:append (partial storage/append-wm datasource)
- :update (partial storage/update-wm datasource)
- :delete (partial storage/delete-wm datasource)
- :get (partial storage/get-wm datasource)
- :get-by-domain (partial storage/get-wms-by-domain datasource)})
+(def store (edn/use-store (get-config :data-path)))
(defn -main [& _]
;; Start webmention processor
diff --git a/src/weepinbell/storage.clj b/src/weepinbell/storage/edn_storage.clj
index 8fa634d..436d2be 100644
--- a/src/weepinbell/storage.clj
+++ b/src/weepinbell/storage/edn_storage.clj
@@ -1,4 +1,4 @@
-(ns weepinbell.storage
+(ns weepinbell.storage.edn-storage
(:require [clojure.edn :as edn]
[weepinbell.utils :refer [get-domain get-target get-path]]
[clojure.java.io :as io]
@@ -48,7 +48,7 @@
([datasource source target]
(let [pred (get-predicate source target)]
(with-webmentions datasource
- #(->> %
+ #(->> %
(remove pred)
(unload-data datasource))))))
@@ -80,3 +80,11 @@
(delete-wm datasource source target)
(append-wm datasource new-data))
+;; make storage vtable
+(defn use-store [datasource]
+ {:append (partial append-wm datasource)
+ :update (partial update-wm datasource)
+ :delete (partial delete-wm datasource)
+ :get (partial get-wm datasource)
+ :get-by-domain (partial get-wms-by-domain datasource)})
+