diff options
Diffstat (limited to 'src/site.clj')
| -rw-r--r-- | src/site.clj | 44 |
1 files changed, 6 insertions, 38 deletions
diff --git a/src/site.clj b/src/site.clj index b7b8787..90db5dc 100644 --- a/src/site.clj +++ b/src/site.clj @@ -117,27 +117,6 @@ (if-not (:admin_only msg) msg))) -;; User-id/nick cache -;; I keep needing to grab user-id from a nick so I thought I'd cache them -;; sostler todo: will replace this w/ user/user-id-cache soon -(def *user-id-cache* (ref {})) -(def *user-id-cache-size* 500) - -(defn user-id-from-nick [nick] - (let [nick (lower-case nick) - found (@*user-id-cache* nick)] - (if found - found - (let [query (str "SELECT user_id FROM users WHERE lower(nick) = ?") - res (first (do-select [query nick]))] - (if (nil? res) - nil - (let [found (res :user_id)] - (dosync - (if (> (count @*user-id-cache*) *user-id-cache-size*) (ref-set *user-id-cache* {})) - (alter *user-id-cache* assoc nick found)) - found)))))) - ;; Login code (defn session-map-from-db @@ -353,26 +332,15 @@ WHERE user_id IN (.toString st))) (resp-error "NO_USER")))) -(defn update-user-db [user-id attr val] - (with-connection *db* - (update-values "users" ["user_id = ?" user-id] {attr val})) - (update-cache! user-id attr val)) - -(defn update-avatar [session url] - (update-user-db (session :user_id) "avatar" url) - [(session-assoc :avatar url) - (resp-success url)]) - (defn update-profile [session params] - (let [user-id (session :user_id) - attr (params :attr) - val (params :val) - attr-set #{"avatar" "contact" "bio"}] + (let [user-id (session :user_id) + attr (params :attr) + val (params :val) + attr-set #{"contact" "bio"}] (cond (not user-id) (resp-error "MUST_LOGIN") (not (and user-id attr val)) (resp-error "BAD_REQUEST") (not (contains? attr-set attr)) (resp-error "BAD_REQUEST") - (= attr "avatar") (update-avatar session val) - :else (do (update-user-db user-id attr val) + :else (do (update-user-info! (:nick session) user-id attr val) (resp-success "OK"))))) ;; Generic Handler @@ -1133,7 +1101,7 @@ WHERE user_id IN url (image-url-from-file "avatars" date dest)] (do (copy (:tempfile image) dest) - (update-user-db (session :user_id) "avatar" url) + (update-user-info! (:nick session) (:user_id session) "avatar" url) [(session-assoc :avatar url) [200 url]]))) |
