find-user-id uses profiles.

This commit is contained in:
Robert C. Martin 2022-07-05 08:09:01 -05:00
parent fdaefd428c
commit 3dfdc5ac49
3 changed files with 22 additions and 11 deletions

View File

@ -355,8 +355,8 @@
(it "emplaces @username in newly created message"
(let [tags []
user-id 99
nicknames {user-id "username"}
event-context (atom {:nicknames nicknames})
profiles {user-id {:name "username"}}
event-context (atom {:profiles profiles})
_ (reset! ui-context {:event-context event-context})
content "hello @username."]
(should= ["hello #[0]." [[:p (hexify user-id)]]] (emplace-references content tags))))
@ -365,9 +365,9 @@
(let [tags (seq [[:e "blah"]])
user-id-1 99
user-id-2 88
nicknames {user-id-1 "user-1"
user-id-2 "user-2"}
event-context (atom {:nicknames nicknames})
profiles {user-id-1 {:name "user-1"}
user-id-2 {:name "user-2"}}
event-context (atom {:profiles profiles})
_ (reset! ui-context {:event-context event-context})
content "hello @user-1 and @user-2."]
(should= ["hello #[1] and #[2]." [[:e "blah"]
@ -418,3 +418,11 @@
(should= {1 "bob"} (:nicknames event-state))
(should= {1 {:name "bob" :about "about" :picture "picture"}}
(:profiles event-state)))))
(describe "find-user-id"
(it "finds the id from a nickname"
(let [event-state {:profiles {1 {:name "bob"}}
:nicknames {1 "bob"}}]
(reset! ui-context {:event-context (atom event-state)})
(should= 1 (find-user-id "bob"))
(should= nil (find-user-id "bill")))))

View File

@ -399,12 +399,12 @@
))))
(defn find-user-id [user-name]
(let [nicknames (:nicknames @(:event-context @ui-context))]
(loop [pairs (vec nicknames)]
(let [profiles (:profiles @(:event-context @ui-context))]
(loop [pairs (vec profiles)]
(if (empty? pairs)
nil
(let [pair (first pairs)]
(if (= user-name (second pair))
(if (= user-name (:name (second pair)))
(first pair)
(recur (rest pairs))))))))

View File

@ -13,9 +13,12 @@
(java.time ZoneOffset)))
(defn send-to [^WebSocket conn msg]
(try
(let [msg (events/to-json msg)]
(println "sending:" msg)
(.sendText conn msg true)))
(.sendText conn msg true))
(catch Exception e
(prn 'send-to (.getMessage e)))))
(defn format-time [time]
(let [time (* time 1000)