| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- (ns frontend.handler.user
- (:require [frontend.util :as util :refer-macros [profile]]
- [frontend.state :as state]
- [frontend.db :as db]
- [frontend.idb :as idb]
- [frontend.config :as config]
- [frontend.storage :as storage]
- [promesa.core :as p]
- [goog.object :as gobj]
- [frontend.handler.notification :as notification])
- (:import [goog.format EmailAddress]))
- (defn email? [v]
- (and v
- (.isValid (EmailAddress. v))))
- (defn set-email!
- [email]
- (when (email? email)
- (util/post (str config/api "email")
- {:email email}
- (fn [result]
- (db/transact! [{:me/email email}])
- (swap! state/state assoc-in [:me :email] email))
- (fn [error]
- (notification/show! "Email already exists!"
- :error)))))
- (defn set-cors!
- [cors-proxy]
- (util/post (str config/api "cors_proxy")
- {:cors-proxy cors-proxy}
- (fn [result]
- (db/transact! [{:me/cors_proxy cors-proxy}])
- (swap! state/state assoc-in [:me :cors_proxy] cors-proxy))
- (fn [error]
- (notification/show! "Set cors proxy failed." :error)
- (js/console.dir error))))
- (defn set-preferred-format!
- [format]
- (when format
- (state/set-preferred-format! format)
- (when (:name (:me @state/state))
- (util/post (str config/api "set_preferred_format")
- {:preferred_format (name format)}
- (fn [_result]
- (notification/show! "Format set successfully!" :success))
- (fn [_e])))))
- (defn set-preferred-workflow!
- [workflow]
- (when workflow
- (state/set-preferred-workflow! workflow)
- (when (:name (:me @state/state))
- (util/post (str config/api "set_preferred_workflow")
- {:preferred_workflow (name workflow)}
- (fn [_result]
- (notification/show! "Workflow set successfully!" :success))
- (fn [_e])))))
- (defn sign-out!
- [_e]
- (when (js/confirm "Your local notes will be completely removed after signing out. Continue?")
- (->
- (idb/clear-local-storage-and-idb!)
- (p/catch (fn [e]
- (println "sign out error: ")
- (js/console.dir e)))
- (p/finally (fn []
- (set! (.-href js/window.location) "/logout"))))))
|