diff --git a/Makefile b/Makefile index 22ad9aa..3089db6 100644 --- a/Makefile +++ b/Makefile @@ -23,4 +23,7 @@ uberjar: serve-jar: source bridge.env && java -jar bridge.jar -m bridge.service +peer-server: + source bridge.env && bash script/datomic-peer-server.sh + pack: clean compile uberjar \ No newline at end of file diff --git a/dev/bridge/dev/repl.clj b/dev/bridge/dev/repl.clj index 204a9ec..e75c25c 100644 --- a/dev/bridge/dev/repl.clj +++ b/dev/bridge/dev/repl.clj @@ -3,14 +3,8 @@ [bridge.data.datomic :as datomic] [integrant.core :as ig])) -;; uses Datomic Peer library - -(defn init-datomic [] - (ig/init-key :datomic/connection - (:datomic/connection (config/system)))) - (defn set-datomic-mode! [mode] - (alter-var-root datomic/*DATOMIC-MODE* (constantly mode))) + (alter-var-root (var datomic/*DATOMIC-MODE*) (constantly mode))) (defn conn [] (when (nil? datomic/*DATOMIC-MODE*) @@ -18,7 +12,21 @@ "You can use `bridge.dev.repl/set-datomic-mode!` " "to do so at the repl.") {}))) - (:datomic/conn (init-datomic))) + (-> (ig/init-key :datomic/connection + (-> (:datomic/connection (config/system)) + (assoc :datomic/mode datomic/*DATOMIC-MODE*))) + :datomic/conn)) (defn db [] (datomic/db (conn))) + +(comment + + (set-datomic-mode! :client) + (set-datomic-mode! :peer) + + (conn) + + (datomic/pull (db) '[*] [:person/email "test@cb.org"]) + + ) diff --git a/resources/system.edn b/resources/system.edn index b6a1325..c7e12ba 100644 --- a/resources/system.edn +++ b/resources/system.edn @@ -1,5 +1,5 @@ {:datomic/connection - {:datomic/mode :peer ;; or :client + {:datomic/mode :peer ;; :peer or :client ;; for :peer :uri #dyn/prop BRIDGE_DATOMIC_URI diff --git a/script/datomic-peer-server.sh b/script/datomic-peer-server.sh index d7d245a..cce9eeb 100755 --- a/script/datomic-peer-server.sh +++ b/script/datomic-peer-server.sh @@ -2,4 +2,4 @@ # requires Datomic Pro -$DATOMIC_PATH/runtime/bin/run -m datomic.peer-server -h localhost -p 8998 -a $BRIDGE_DATOMIC_CLIENT_KEY,$BRIDGE_DATOMIC_CLIENT_SECRET -d $BRIDGE_DATOMIC_DB,datomic:free://localhost:4334/$BRIDGE_DATOMIC_DB \ No newline at end of file +$DATOMIC_PATH/runtime/bin/run -m datomic.peer-server -h localhost -p 8998 -a $BRIDGE_DATOMIC_CLIENT_KEY,$BRIDGE_DATOMIC_CLIENT_SECRET -d $BRIDGE_DATOMIC_DB,datomic:mem://localhost:4334/$BRIDGE_DATOMIC_DB \ No newline at end of file diff --git a/src/bridge/data/dev_data.clj b/src/bridge/data/dev_data.clj index d627770..7773dab 100644 --- a/src/bridge/data/dev_data.clj +++ b/src/bridge/data/dev_data.clj @@ -5,10 +5,7 @@ (defn add-person! [conn {:person/keys [email] :as new-person}] (when (nil? (person.data/person-id-by-email (datomic/db conn) email)) - (let [new-person-tx (person.data/new-person-tx new-person - #:person{:name "Test Name" - :email "test@cb.org" - :password "secret"})] + (let [new-person-tx (person.data/new-person-tx new-person)] (person.data/save-new-person! conn new-person-tx) (person.data/confirm-email! conn (person.data/person-id-by-email (datomic/db conn) email) diff --git a/src/bridge/person/access/reset_password.clj b/src/bridge/person/access/reset_password.clj index b8ff8ab..48b9140 100644 --- a/src/bridge/person/access/reset_password.clj +++ b/src/bridge/person/access/reset_password.clj @@ -40,12 +40,13 @@ [:p.has-text-grey [:a {:href "/help"} "Need Help?"]])) -(defn reset-password [{:keys [request-method] - {:keys [reset-password-token password confirm-password]} :params +(defn reset-password [{[_ token] :ataraxy/result + :keys [request-method] + {:keys [password confirm-password]} :params :datomic/keys [conn db]}] (or (when (= :post request-method) (let [person-id (person.data/person-id-by-reset-password-token - db reset-password-token) + db token) password-error (person.data/valid-password? password confirm-password)] (cond (nil? person-id) (reset-password-page :invalid-token) @@ -55,8 +56,7 @@ :else (try - (person.data/reset-password! conn person-id reset-password-token - password) + (person.data/reset-password! conn person-id token password) (response/redirect (access.common/login-uri "/")) diff --git a/src/bridge/person/data.clj b/src/bridge/person/data.clj index 8755b87..0270ea4 100644 --- a/src/bridge/person/data.clj +++ b/src/bridge/person/data.clj @@ -57,7 +57,7 @@ (defn save-new-person! [conn person-tx] (datomic/transact! conn [person-tx]) - (let [{:person/keys [email email-confirm-token]} (:person/email person-tx)] + (let [{:person/keys [email email-confirm-token]} person-tx] (send-email! email (str "your email confirm token: " email-confirm-token)))) (defn confirm-email! [conn person-id token]