Browse Source

refacotr(helper): remove frontend.helper

defclass 4 years ago
parent
commit
0eff6751cd

+ 1 - 3
src/main/frontend/components/diff.cljs

@@ -11,9 +11,7 @@
             [frontend.db :as db]
             [frontend.components.svg :as svg]
             [frontend.ui :as ui]
-            [frontend.db :as db]
             [frontend.git :as git]
-            [frontend.helper :as helper]
             [goog.object :as gobj]
             [promesa.core :as p]
             [frontend.github :as github]
@@ -151,7 +149,7 @@
        (p/let [remote-latest-commit (common-handler/get-remote-ref repo)
                local-latest-commit (common-handler/get-ref repo)
                result (git/get-diffs repo local-latest-commit remote-latest-commit)
-               token (helper/get-github-token repo)]
+               token (common-handler/get-github-token repo)]
          (reset! state/diffs result)
          (reset! remote-hash-id remote-latest-commit)
          (doseq [{:keys [type path]} result]

+ 3 - 3
src/main/frontend/handler.cljs

@@ -21,9 +21,9 @@
             [frontend.handler.web.nfs :as nfs]
             [frontend.ui :as ui]
             [goog.object :as gobj]
-            [frontend.helper :as helper]
             [frontend.idb :as idb]
-            [lambdaisland.glogi :as log]))
+            [lambdaisland.glogi :as log]
+            [frontend.handler.common :as common-handler]))
 
 (defn- watch-for-date!
   []
@@ -111,7 +111,7 @@
                             (page-handler/init-commands!)
                             (if (seq (:repos me))
                               ;; FIXME: handle error
-                              (helper/request-app-tokens!
+                              (common-handler/request-app-tokens!
                                (fn []
                                  (repo-handler/clone-and-pull-repos me))
                                (fn []

+ 63 - 2
src/main/frontend/handler/common.cljs

@@ -8,7 +8,11 @@
             [frontend.git :as git]
             [frontend.db :as db]
             [lambdaisland.glogi :as log]
-            [cljs.reader :as reader]))
+            [cljs.reader :as reader]
+            [frontend.spec :as spec]
+            [cljs-time.core :as t]
+            [cljs-time.format :as tf]
+            [frontend.config :as config]))
 
 (defn get-ref
   [repo-url]
@@ -80,4 +84,61 @@
                      (js/console.dir e)
                      {}))]
       (state/set-config! repo-url config)
-      config)))
+      config)))
+
+(defn request-app-tokens!
+  [ok-handler error-handler]
+  (let [repos (state/get-repos)
+        installation-ids (->> (map :installation_id repos)
+                           (remove nil?)
+                           (distinct))]
+    (when (or (seq repos)
+            (seq installation-ids))
+      (util/post (str config/api "refresh_github_token")
+        {:installation-ids installation-ids
+         :repos repos}
+        (fn [result]
+          (state/set-github-installation-tokens! result)
+          (when ok-handler (ok-handler)))
+        (fn [error]
+          (log/error :token/http-request-failed error)
+          (js/console.dir error)
+          (when error-handler (error-handler)))))))
+
+(defn- get-github-token*
+  [repo]
+  (spec/validate :repos/url repo)
+  (when repo
+    (let [{:keys [token expires_at] :as token-state}
+          (state/get-github-token repo)]
+      (spec/validate :repos/repo token-state)
+      (if (and (map? token-state)
+            (string? expires_at))
+        (let [expires-at (tf/parse (tf/formatters :date-time-no-ms) expires_at)
+              now (t/now)
+              expired? (t/after? now expires-at)]
+          {:exist? true
+           :expired? expired?
+           :token token})
+        {:exist? false}))))
+
+(defn get-github-token
+  ([]
+   (get-github-token  (state/get-current-repo)))
+  ([repo]
+   (when-not (config/local-db? repo)
+     (js/Promise.
+       (fn [resolve reject]
+         (let [{:keys [expired? token exist?]} (get-github-token* repo)
+               valid-token? (and exist? (not expired?))]
+           (if valid-token?
+             (resolve token)
+             (request-app-tokens!
+               (fn []
+                 (let [{:keys [expired? token exist?] :as token-m} (get-github-token* repo)
+                       valid-token? (and exist? (not expired?))]
+                   (if valid-token?
+                     (resolve token)
+                     (do (log/error :token/failed-get-token token-m)
+                         (reject)))))
+               nil))))))))

+ 1 - 2
src/main/frontend/handler/file.cljs

@@ -24,8 +24,7 @@
             [cljs-time.core :as t]
             [cljs-time.coerce :as tc]
             [frontend.utf8 :as utf8]
-            ["ignore" :as Ignore]
-            [frontend.handler.utils :as h-utils]))
+            ["ignore" :as Ignore]))
 
 (defn load-file
   [repo-url path]

+ 2 - 3
src/main/frontend/handler/git.cljs

@@ -10,8 +10,7 @@
             [frontend.handler.route :as route-handler]
             [frontend.handler.common :as common-handler]
             [frontend.config :as config]
-            [cljs-time.local :as tl]
-            [frontend.helper :as helper]))
+            [cljs-time.local :as tl]))
 
 (defn- set-git-status!
   [repo-url value]
@@ -46,7 +45,7 @@
      (p/let [remote-oid (common-handler/get-remote-ref repo)
              commit-oid (git/commit repo commit-message (array remote-oid))
              result (git/write-ref! repo commit-oid)
-             token (helper/get-github-token repo)
+             token (common-handler/get-github-token repo)
              push-result (git/push repo token true)]
        (reset! pushing? false)
        (notification/clear! nil)

+ 5 - 7
src/main/frontend/handler/repo.cljs

@@ -24,9 +24,7 @@
             [cljs.reader :as reader]
             [clojure.string :as string]
             [frontend.dicts :as dicts]
-            [frontend.helper :as helper]
-            [frontend.spec :as spec]
-            [frontend.handler.utils :as h-utils]))
+            [frontend.spec :as spec]))
 
 ;; Project settings should be checked in two situations:
 ;; 1. User changes the config.edn directly in logseq.com (fn: alter-file)
@@ -361,7 +359,7 @@
                             (empty? @state/diffs)))))
                 (git-handler/set-git-status! repo-url :pulling)
                 (->
-                 (p/let [token (helper/get-github-token repo-url)
+                 (p/let [token (common-handler/get-github-token repo-url)
                          result (git/fetch repo-url token)]
                    (let [{:keys [fetchHead]} (bean/->clj result)]
                      (-> (git/merge repo-url)
@@ -435,7 +433,7 @@
                                      "Logseq auto save"
                                      commit-message)]
                 (p/let [commit-oid (git/commit repo-url commit-message)
-                        token (helper/get-github-token repo-url)
+                        token (common-handler/get-github-token repo-url)
                         status (db/get-key-value repo-url :git/status)]
                   (when (and token (or (not= status :pushing)
                                        custom-commit?))
@@ -476,7 +474,7 @@
 (defn- clone
   [repo-url]
   (spec/validate :repos/url repo-url)
-  (p/let [token (helper/get-github-token repo-url)]
+  (p/let [token (common-handler/get-github-token repo-url)]
     (when token
       (util/p-handle
        (do
@@ -563,7 +561,7 @@
   (js/setInterval
    (fn []
      (p/let [repo-url (state/get-current-repo)
-             token (helper/get-github-token repo-url)]
+             token (common-handler/get-github-token repo-url)]
        (when token
          (pull repo-url nil))))
    (* (config/git-pull-secs) 1000)))

+ 0 - 65
src/main/frontend/helper.cljs

@@ -1,65 +0,0 @@
-(ns frontend.helper
-  (:require [cljs-time.format :as tf]
-            [cljs-time.core :as t]
-            [lambdaisland.glogi :as log]
-            [frontend.util :as util]
-            [frontend.state :as state]
-            [frontend.config :as config]
-            [frontend.spec :as spec]))
-
-(defn request-app-tokens!
-  [ok-handler error-handler]
-  (let [repos (state/get-repos)
-        installation-ids (->> (map :installation_id repos)
-                              (remove nil?)
-                              (distinct))]
-    (when (or (seq repos)
-              (seq installation-ids))
-      (util/post (str config/api "refresh_github_token")
-                 {:installation-ids installation-ids
-                  :repos repos}
-                 (fn [result]
-                   (state/set-github-installation-tokens! result)
-                   (when ok-handler (ok-handler)))
-                 (fn [error]
-                   (log/error :token/http-request-failed error)
-                   (js/console.dir error)
-                   (when error-handler (error-handler)))))))
-
-(defn- get-github-token*
-  [repo]
-  (spec/validate :repos/url repo)
-  (when repo
-    (let [{:keys [token expires_at] :as token-state}
-          (state/get-github-token repo)]
-      (spec/validate :repos/repo token-state)
-      (if (and (map? token-state)
-               (string? expires_at))
-        (let [expires-at (tf/parse (tf/formatters :date-time-no-ms) expires_at)
-              now (t/now)
-              expired? (t/after? now expires-at)]
-          {:exist? true
-           :expired? expired?
-           :token token})
-        {:exist? false}))))
-
-(defn get-github-token
-  ([]
-   (get-github-token  (state/get-current-repo)))
-  ([repo]
-   (when-not (config/local-db? repo)
-     (js/Promise.
-      (fn [resolve reject]
-        (let [{:keys [expired? token exist?]} (get-github-token* repo)
-              valid-token? (and exist? (not expired?))]
-          (if valid-token?
-            (resolve token)
-            (request-app-tokens!
-             (fn []
-               (let [{:keys [expired? token exist?] :as token-m} (get-github-token* repo)
-                     valid-token? (and exist? (not expired?))]
-                 (if valid-token?
-                   (resolve token)
-                   (do (log/error :token/failed-get-token token-m)
-                       (reject)))))
-             nil))))))))