Skip to content

Commit

Permalink
rename sparkboard -> sb
Browse files Browse the repository at this point in the history
  • Loading branch information
mhuebert committed Dec 19, 2023
1 parent d4bc453 commit 2f91722
Show file tree
Hide file tree
Showing 109 changed files with 712 additions and 715 deletions.
6 changes: 3 additions & 3 deletions bb.edn
Expand Up @@ -16,7 +16,7 @@
(when-not (fs/exists? "classes/com")
(shell "clojure -T:compile-java compile-java")))
dev (do (run 'compile-scrypt)
(shell "yarn shadow-cljs -A:dev:nio:local clj-run sparkboard.build/start 3000"))
(shell "yarn shadow-cljs -A:dev:nio:local clj-run sb.build/start 3000"))
cljs (do (shell "yarn install")
(shell "yarn shadow-cljs release web"))
clj (do (shell "clojure -A:nio -X:aot")
Expand All @@ -38,9 +38,9 @@
build-report (shell "yarn shadow-cljs run shadow.cljs.build-report web report.html")
run (shell "java -jar target/sparkboard.jar")

migrate:fetch (yarn shadow-cljs clj-run sparkboard.migration.core/tx!)
migrate:fetch (yarn shadow-cljs clj-run sb.migration.core/tx!)
migrate:tx (do (shell "rm -rf .db/datalevin")
(shell "yarn shadow-cljs clj-run sparkboard.migration.core/tx!"))
(shell "yarn shadow-cljs clj-run sb.migration.core/tx!"))

;; this step is run manually after verifying a staging build.
staging:promote (let [{:strs [Registry Repository Tag]} (-> (shell {:out :string}
Expand Down
4 changes: 2 additions & 2 deletions deps.edn
Expand Up @@ -67,8 +67,8 @@
thheller/shadow-cljs {:mvn/version "2.25.7"}
net.clojars.wkok/openai-clojure {:mvn/version "0.5.0"}}
:aliases
{:uberjar {:exec-fn sparkboard.build/uberjar}
:aot {:exec-fn sparkboard.build/aot}
{:uberjar {:exec-fn sb.build/uberjar}
:aot {:exec-fn sb.build/aot}
:compile-java {:deps {io.github.clojure/tools.build {:mvn/version "0.9.4"}}
:ns-default dev.tools-build}
:dev {:extra-deps {cider/cider-nrepl {:mvn/version "0.30.0"}}}
Expand Down
14 changes: 7 additions & 7 deletions shadow-cljs.edn
Expand Up @@ -3,17 +3,17 @@
{:browser
{:target :browser
:module-loader true
:modules {:app {:init-fn sparkboard.client.core/init
:entries [sparkboard.client.core]}
:slack {:entries [sparkboard.client.slack] :depends-on #{:app}}}
:modules {:app {:init-fn sb.client.core/init
:entries [sb.client.core]}
:slack {:entries [sb.client.slack] :depends-on #{:app}}}
:output-dir "resources/public/js/"
:asset-path "/js"
:devtools {:preloads [yawn.view.refresh-preload]
:watch-dir "resources/public"}
:dev {:build-hooks [(sparkboard.build/tailwind-dev!)
(sparkboard.build/spit-endpoints!)]}
:release {:build-hooks [(sparkboard.build/tailwind-release!)
(sparkboard.build/spit-endpoints!)]}}}}
:dev {:build-hooks [(sb.build/tailwind-dev!)
(sb.build/spit-endpoints!)]}
:release {:build-hooks [(sb.build/tailwind-release!)
(sb.build/spit-endpoints!)]}}}}

(comment
(shadow/watch :browser)
Expand Down
File renamed without changes.
@@ -1,8 +1,8 @@
(ns sparkboard.slack.account-bridge-node
(:require [sparkboard.slack.firebase.tokens :as tokens]
[sparkboard.server.env :as env]
[sparkboard.js-convert :refer [->clj]]
[sparkboard.slack.promise :as p]))
(ns org.sparkboard.slack.account-bridge-node
(:require [org.sparkboard.slack.firebase.tokens :as tokens]
[sb.server.env :as env]
[sb.js-convert :refer [->clj]]
[org.sparkboard.slack.promise :as p]))

;; this fn is called by the legacy node server and handles inbound links (from slack to sparkboard).
(defn slack-link-proxy [legacy-session]
Expand Down
@@ -1,10 +1,10 @@
(ns sparkboard.slack.api
(ns org.sparkboard.slack.api
(:require [clj-http.client :as client]
[jsonista.core :as json]
[taoensso.timbre :as log]
[sparkboard.js-convert :refer [json->clj]]
[sparkboard.slack.hiccup :as hiccup]
[sparkboard.util :as u])
[sb.js-convert :refer [json->clj]]
[org.sparkboard.slack.hiccup :as hiccup]
[sb.util :as u])
(:import (java.net URI)
(java.net.http HttpClient HttpClient$Version
HttpRequest
Expand Down Expand Up @@ -84,14 +84,14 @@
(comment
(http-verb "users.list")

(http-verb "conversations.info") ; #function[sparkboard.server.slack.core/web-api-get]
(http-verb "conversations.info") ; #function[sb.server.slack.core/web-api-get]

(http-verb "channels.list")

(http-verb "views.publish") ;; XXX this seems to be a mistake on Slack's part: it's GET in the spec but POST in the docs

;; bot token only for local dev experiments
(def bot-token (-> sparkboard.server.env/config :slack :bot-user-oauth-token))
(def bot-token (-> sb.server.env/config :slack :bot-user-oauth-token))

(web-api-get "conversations.info" {:auth/token bot-token} {:a "b"})

Expand Down
10 changes: 5 additions & 5 deletions src/sparkboard/slack/db.clj → src/org/sparkboard/slack/db.clj
@@ -1,12 +1,12 @@
(ns sparkboard.slack.db
(ns org.sparkboard.slack.db
(:require [clojure.pprint :as pp]
[clojure.set :as set]
[clojure.string :as str]
[sparkboard.slack.firebase.admin-db-api :as fire]
[sparkboard.server.env :as env]
[sparkboard.slack.requests :as slack]
[org.sparkboard.slack.firebase.admin-db-api :as fire]
[sb.server.env :as env]
[org.sparkboard.slack.requests :as slack]
[taoensso.timbre :as log]
[sparkboard.slack.promise :as p]))
[org.sparkboard.slack.promise :as p]))

(defn join [segments]
(->> segments (map name) (str/join "/")))
Expand Down
@@ -1,11 +1,11 @@
(ns sparkboard.slack.firebase
(ns org.sparkboard.slack.firebase
(:require ["firebase/app" :as firebase]
["firebase/auth"]
["react" :as react]
[applied-science.js-interop :as j]
[re-db.api :as db]
[sparkboard.slack.loaders :as loaders]
[sparkboard.slack.promise :as p]))
[org.sparkboard.slack.loaders :as loaders]
[org.sparkboard.slack.promise :as p]))

(defonce app firebase)
(defonce auth (delay (.auth firebase)))
Expand Down
@@ -1,11 +1,11 @@
(ns sparkboard.slack.firebase.admin-db-api
(ns org.sparkboard.slack.firebase.admin-db-api
(:refer-clojure :exclude [read])
(:require [clojure.string :as str]
[sparkboard.server.env :as env]
[sparkboard.js-convert :refer [clj->json ->clj]]
#?(:clj [sparkboard.slack.firebase.jvm :as fire-jvm]
:cljs [sparkboard.http :as http])
[sparkboard.util :as u])
[sb.server.env :as env]
[sb.js-convert :refer [clj->json ->clj]]
#?(:clj [org.sparkboard.slack.firebase.jvm :as fire-jvm]
:cljs [sb.http :as http])
[sb.util :as u])
#?(:clj (:import (com.google.firebase.database DatabaseReference))))

#?(:cljs
Expand Down
@@ -1,9 +1,9 @@
(ns sparkboard.slack.firebase.jvm
(ns org.sparkboard.slack.firebase.jvm
(:refer-clojure :exclude [read])
(:require [clojure.java.io :as io]
[clojure.walk :as walk]
[sparkboard.server.env :as env]
[sparkboard.js-convert :refer [clj->json]]
[sb.server.env :as env]
[sb.js-convert :refer [clj->json]]
[taoensso.timbre :as log])
(:import (com.google.auth.oauth2 ServiceAccountCredentials)
(com.google.firebase FirebaseApp FirebaseOptions$Builder)
Expand Down
@@ -1,8 +1,8 @@
(ns sparkboard.slack.firebase.tokens
(:require [sparkboard.http :as http]
[sparkboard.server.env :as env]
[sparkboard.slack.jwt-rs256 :as jwt]
[sparkboard.slack.promise :as p]))
(ns org.sparkboard.slack.firebase.tokens
(:require [sb.http :as http]
[sb.server.env :as env]
[org.sparkboard.slack.jwt-rs256 :as jwt]
[org.sparkboard.slack.promise :as p]))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Firebase token encode/decode for secure communication with legacy services
Expand Down
@@ -1,10 +1,10 @@
(ns sparkboard.slack.hiccup
(ns org.sparkboard.slack.hiccup
(:require [clojure.string :as str]
[clojure.walk :as walk]
[taoensso.timbre :as log]
[sparkboard.js-convert :refer [clj->json kw->js]]
[sparkboard.transit :as transit]
[sparkboard.util :as u]))
[sb.js-convert :refer [clj->json kw->js]]
[sb.transit :as transit]
[sb.util :as u]))

(def schema
"hiccup<->block metadata. Supports:
Expand Down
@@ -1,6 +1,6 @@
(ns sparkboard.slack.jwt-rs256
(ns org.sparkboard.slack.jwt-rs256
(:require [clojure.walk :as walk]
[sparkboard.js-convert :refer [->js ->clj]]
[sb.js-convert :refer [->js ->clj]]
#?@(:cljs [["jsonwebtoken" :as jwt]]
:clj [[clj-jwt.core :as jwt]
[clj-jwt.key :as jwt-key]]))
Expand Down
@@ -1,6 +1,6 @@
(ns sparkboard.slack.loaders
(ns org.sparkboard.slack.loaders
(:require [applied-science.js-interop :as j]
[sparkboard.slack.promise :as p]))
[org.sparkboard.slack.promise :as p]))

;; memoized loaders for css and javascript assets.
;; (at least the js needs to be dynamic because it depends on the user's locale)
Expand Down
@@ -1,15 +1,15 @@
(ns sparkboard.slack.oauth
(ns org.sparkboard.slack.oauth
(:require [clojure.string :as str]
[lambdaisland.uri :as uri]
[sparkboard.slack.firebase.tokens :as tokens]
[sparkboard.server.env :as env]
[sparkboard.slack.db :as slack.db]
[sparkboard.slack.requests :as slack]
[sparkboard.slack.urls :as urls]
[org.sparkboard.slack.firebase.tokens :as tokens]
[sb.server.env :as env]
[org.sparkboard.slack.db :as slack.db]
[org.sparkboard.slack.requests :as slack]
[org.sparkboard.slack.urls :as urls]
[ring.util.http-response :as http]
[taoensso.timbre :as log]
[sparkboard.http :refer [get+]]
[sparkboard.slack.api :refer [base-uri]]))
[sb.http :refer [get+]]
[org.sparkboard.slack.api :refer [base-uri]]))

(def slack-config (:slack env/config))

Expand All @@ -30,7 +30,7 @@
They are sent to this URL from Sparkboard, which adds a `state`
query parameter - a signed token with a payload containing the user's
account-id and board-id from Sparkboard.
account-id and board-id from sb.
This is how we verify who the user is, and what board to connect the
app to (a board for which the user must be an admin)"
Expand Down
@@ -1,10 +1,10 @@
(ns sparkboard.slack.promise
(ns org.sparkboard.slack.promise
(:refer-clojure :exclude [let -> ->> do resolve try catch promise])
(:require [kitchen-async.promise]
#?(:clj [net.cgrand.macrovich :as m]))
#?(:cljs
(:require-macros [net.cgrand.macrovich :as m]
sparkboard.slack.promise)))
org.sparkboard.slack.promise)))

(m/deftime
(defmacro alt [{:keys [cljs clj]} & body]
Expand Down
@@ -1,5 +1,5 @@
(ns sparkboard.slack.requests
(:require [sparkboard.slack.api :refer [*context* request!]]))
(ns org.sparkboard.slack.requests
(:require [org.sparkboard.slack.api :refer [*context* request!]]))

(def channel-info
(memoize
Expand Down
@@ -1,5 +1,5 @@
(ns sparkboard.slack.schema
(:require [sparkboard.schema :as sch :refer [s- ?]]))
(ns org.sparkboard.slack.schema
(:require [sb.schema :as sch :refer [s- ?]]))

(sch/register!
{:slack.app/bot-token {s- :string},
Expand Down
@@ -1,13 +1,13 @@
(ns sparkboard.slack.screens
(:require [sparkboard.slack.firebase.jvm :as fire-jvm]
[sparkboard.server.env :as env]
[sparkboard.slack.requests :as slack]
[sparkboard.slack.db :as slack.db]
[sparkboard.slack.urls :as urls]
[sparkboard.slack.view :as v]
[sparkboard.slack.view-examples :as examples]
[sparkboard.slack.api :as slack.api]
[sparkboard.transit :as transit]))
(ns org.sparkboard.slack.screens
(:require [org.sparkboard.slack.firebase.jvm :as fire-jvm]
[sb.server.env :as env]
[org.sparkboard.slack.requests :as slack]
[org.sparkboard.slack.db :as slack.db]
[org.sparkboard.slack.urls :as urls]
[org.sparkboard.slack.view :as v]
[org.sparkboard.slack.view-examples :as examples]
[org.sparkboard.slack.api :as slack.api]
[sb.transit :as transit]))

(defmacro try-future [& body]
`(future
Expand Down Expand Up @@ -315,7 +315,7 @@
(if-let [{:keys [title domain]} (some->> board-id (str "settings/") fire-jvm/read)]
[:section
{:accessory [:button {:url (urls/sparkboard-host domain)} "View Board"]}
[:md "Connected to *" title "* on Sparkboard."]]
[:md "Connected to *" title "* on sb."]]
[:section
[:md "No Sparkboard is linked to this Slack workspace."]])

Expand Down
@@ -1,4 +1,4 @@
(ns sparkboard.slack.server
(ns org.sparkboard.slack.server
"HTTP routes for Slack integration"
(:require
[bidi.bidi]
Expand All @@ -7,21 +7,21 @@
[clojure.string :as str]
[cognitect.transit :as transit]
[lambdaisland.uri :as uri]
[sparkboard.slack.firebase.jvm :as fire-jvm]
[sparkboard.server.env :as env]
[sparkboard.slack.db :as slack.db]
[sparkboard.slack.firebase.tokens :as fire-tokens]
[sparkboard.slack.oauth :as slack-oauth]
[sparkboard.slack.requests :as slack]
[sparkboard.slack.screens :as screens]
[sparkboard.slack.urls :as urls]
[org.sparkboard.slack.firebase.jvm :as fire-jvm]
[sb.server.env :as env]
[org.sparkboard.slack.db :as slack.db]
[org.sparkboard.slack.firebase.tokens :as fire-tokens]
[org.sparkboard.slack.oauth :as slack-oauth]
[org.sparkboard.slack.requests :as slack]
[org.sparkboard.slack.screens :as screens]
[org.sparkboard.slack.urls :as urls]
[ring.middleware.defaults]
[ring.middleware.format]
[ring.util.http-response :as ring.http]
[taoensso.timbre :as log]
[sparkboard.js-convert :refer [json->clj]]
[sparkboard.slack.api :as slack.api]
[sparkboard.slack.view :as v])
[sb.js-convert :refer [json->clj]]
[org.sparkboard.slack.api :as slack.api]
[org.sparkboard.slack.view :as v])
(:import (javax.crypto Mac)
(javax.crypto.spec SecretKeySpec)
(org.apache.commons.codec.binary Hex)))
Expand Down Expand Up @@ -371,13 +371,13 @@

(def handlers*
(-> (bidi.ring/make-handler routes)
#_(sparkboard.server.core/wrap-debug-request :slack/last)
#_(sb.server.core/wrap-debug-request :slack/last)
;; Note: if the following `wrap-restful-format` middleware runs, it will
;; stomp on muuntaja's `body-params` elsewhere in the non-slack middleware
;; stack. This is why we have `handler` protecting `handler*` from
;; executing unless needed.
(ring.middleware.format/wrap-restful-format {:formats [:json-kw :transit-json]})
#_(sparkboard.server.core/wrap-debug-request :slack/one)
#_(sb.server.core/wrap-debug-request :slack/one)
wrap-slack-verify
(ring.middleware.defaults/wrap-defaults ring.middleware.defaults/api-defaults)))

Expand Down
@@ -1,8 +1,8 @@
(ns sparkboard.slack.urls
(ns org.sparkboard.slack.urls
(:require [lambdaisland.uri :as uri]
[sparkboard.slack.firebase.tokens :as tokens]
[sparkboard.server.env :as env]
[sparkboard.slack.db :as slack.db]
[org.sparkboard.slack.firebase.tokens :as tokens]
[sb.server.env :as env]
[org.sparkboard.slack.db :as slack.db]
[taoensso.timbre :as log]))

(defn sparkboard-host
Expand All @@ -13,7 +13,7 @@
(str (:sparkboard/jvm-root env/config) "/mock/" domain)
(case env
"dev" (str "http://" domain ".test:4999")
"staging" (str "http://" domain ".sparkboard.org")
"staging" (str "http://" domain ".sb.org")
"prod" (str "https://" domain)))))

(defn app-redirect [{:as params :keys [app team domain]}]
Expand Down

0 comments on commit 2f91722

Please sign in to comment.