mirror of
https://github.com/logseq/logseq.git
synced 2026-06-01 19:01:22 +00:00
refacotr(helper): remove frontend.helper
This commit is contained in:
@@ -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]
|
||||
|
||||
@@ -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 []
|
||||
|
||||
@@ -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))))))))
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)))
|
||||
|
||||
@@ -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))))))))
|
||||
Reference in New Issue
Block a user