-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
29 changed files
with
553 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +0,0 @@ | ||
|
||
Teakits | ||
---- | ||
|
||
Tickets of tasks. | ||
|
||
### Project Template | ||
|
||
https://github.com/mvc-works/boot-workflow | ||
|
||
### License | ||
|
||
MIT | ||
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
|
||
Teakits | ||
---- | ||
|
||
Tickets of tasks. | ||
|
||
### Project Template | ||
|
||
https://github.com/mvc-works/boot-workflow | ||
|
||
### License | ||
|
||
MIT |
File renamed without changes.
File renamed without changes
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
|
||
/target | ||
/src | ||
|
||
/node_modules | ||
|
||
/.nrepl* | ||
/figwheel* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
|
||
Teakits server | ||
---- | ||
|
||
Server code for https://github.com/Cumulo/teakits | ||
|
||
### Usage | ||
|
||
```bash | ||
boot compile-cirru # to get ClojureScript code | ||
boot dev # start REPL | ||
# (start-figwheel!) ; to run in developing mode | ||
# cd target/; node app.js | ||
boot build-simple # generate static code | ||
boot build-build # generate code and minimize | ||
# cd target/; node main.js | ||
``` | ||
|
||
### License | ||
|
||
MIT |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,116 @@ | ||
|
||
(set-env! | ||
:dependencies '[[org.clojure/clojurescript "1.9.76" :scope "test"] | ||
[org.clojure/clojure "1.8.0" :scope "test"] | ||
[adzerk/boot-cljs "1.7.228-1" :scope "test"] | ||
[figwheel-sidecar "0.5.4-3" :scope "test"] | ||
[cirru/boot-cirru-sepal "0.1.8" :scope "test"] | ||
[com.cemerick/piggieback "0.2.1" :scope "test"] | ||
[org.clojure/tools.nrepl "0.2.10" :scope "test"] | ||
[ajchemist/boot-figwheel "0.5.4-2" :scope "test"] | ||
[adzerk/boot-test "1.1.1" :scope "test"] | ||
[cumulo/server "0.1.0"]]) | ||
|
||
(require '[adzerk.boot-cljs :refer [cljs]] | ||
'[adzerk.boot-test :refer :all] | ||
'[cirru-sepal.core :refer [transform-cirru]] | ||
'[boot-figwheel]) | ||
|
||
(refer 'boot-figwheel :rename '{cljs-repl fw-cljs-repl}) ; avoid some symbols | ||
|
||
(def +version+ "0.1.0") | ||
|
||
(task-options! | ||
pom {:project 'cumulo/teakits | ||
:version +version+ | ||
:description "Workflow" | ||
:url "https://github.com/Cumulo/teakits" | ||
:scm {:url "https://github.com/Cumulo/teakits"} | ||
:license {"MIT" "http://opensource.org/licenses/mit-license.php"}}) | ||
|
||
(deftask compile-cirru [] | ||
(set-env! | ||
:source-paths #{"cirru/"}) | ||
(comp | ||
(transform-cirru) | ||
(target :dir #{"compiled/"}))) | ||
|
||
(task-options! | ||
figwheel {:build-ids ["dev"] | ||
:all-builds [{:id "dev" | ||
:compiler {:main 'teakits-server.core | ||
:target :nodejs | ||
:output-to "app.js"} | ||
:figwheel {:build-id "dev" | ||
:on-jsload 'teakits-server.core/on-jsload | ||
:autoload true | ||
:heads-up-display true}}] | ||
:figwheel-options {:repl true | ||
:open-file-command "e"}}) | ||
|
||
(deftask watch-cirru [] | ||
(set-env! | ||
:source-paths #{"cirru/"}) | ||
(comp | ||
(watch) | ||
(transform-cirru) | ||
(target :dir #{"compiled/"}))) | ||
|
||
(deftask dev [] | ||
(set-env! | ||
:source-paths #(into % ["compiled/src/"])) | ||
(comp | ||
(repl) | ||
(figwheel) | ||
(target))) | ||
|
||
(deftask build-simple [] | ||
(set-env! | ||
:source-paths #{"cirru/src"}) | ||
(comp | ||
(transform-cirru) | ||
(cljs :optimizations :simple :compiler-options {:target :nodejs}) | ||
(target))) | ||
|
||
(deftask build-advanced [] | ||
(set-env! | ||
:source-paths #{"cirru/src"}) | ||
(comp | ||
(transform-cirru) | ||
(cljs :optimizations :advanced :compiler-options {:target :nodejs}) | ||
(target))) | ||
|
||
(deftask rsync [] | ||
(with-pre-wrap fileset | ||
(sh "rsync" "-r" "target/" "tiye:repo/Cumulo/teakits-server" "--exclude" "main.out" "--delete") | ||
fileset)) | ||
|
||
(deftask send-tiye [] | ||
(comp | ||
(build-simple) | ||
(rsync))) | ||
|
||
(deftask build [] | ||
(set-env! | ||
:source-paths #{"cirru/src"}) | ||
(comp | ||
(transform-cirru) | ||
(pom) | ||
(jar) | ||
(install) | ||
(target))) | ||
|
||
(deftask deploy [] | ||
(set-env! | ||
:repositories #(conj % ["clojars" {:url "https://clojars.org/repo/"}])) | ||
(comp | ||
(build) | ||
(push :repo "clojars" :gpg-sign (not (.endsWith +version+ "-SNAPSHOT"))))) | ||
|
||
(deftask watch-test [] | ||
(set-env! | ||
:source-paths #{"cirru/src" "cirru/test"}) | ||
(comp | ||
(watch) | ||
(transform-cirru) | ||
(test :namespaces '#{boot-workflow.test}))) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
[["ns","teakits-server.core",[":require-macros",["[]","cljs.core.async.macros",":refer",["[]","go"]]],[":require",["[]","cljs.nodejs",":as","nodejs"],["[]","teakits-server.schema",":as","schema"],["[]","teakits-server.updater.core",":refer",["[]","update-store"]],["[]","teakits-server.view.viewer",":refer",["[]","extract-tree"]],["[]","cumulo-server.core",":refer",["[]","setup-server!","reload-renderer!"]],["[]","cljs.reader",":as","reader"]]],["def","fs",["js/require","|fs"]],["def","db-filename","|db.edn"],["defonce","data-center",["atom",["if",[".existsSync","fs","db-filename"],["let",[["old-db",["reader/read-string",[".readFileSync","fs","db-filename","|utf8"]]]],["assoc","old-db",":states",["{}"]]],"schema/database"]]],["defonce","file-cache",["atom","@data-center"]],["defn","-main",[],["nodejs/enable-util-print!"],["js/setInterval",["fn",[],["if",["not=","@data-center","@file-cache"],["do",["reset!","file-cache","@data-center"],[".writeFileSync","fs","db-filename",["pr-str","@file-cache"]],["println","|wrote to ","db-filename"]]]],"20000"],["setup-server!","data-center","update-store","identity","extract-tree",["{}",[":port","4010"]]],["println","|server started"]],["set!","*main-cli-fn*","-main"],["defn","on-jsload",[],["println","|reload"],["reload-renderer!","@data-center","update-store","identity","extract-tree"]]] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
[["ns","teakits-server.schema"],["def","default-avatar","|http://tp2.sinaimg.cn/1258256457/50/5616578718/1"],["def","database",["{}",[":users",["{}"]],[":states",["{}"]],[":tags",["{}"]],[":topics",["{}"]]]],["def","state",["{}",[":id","nil"],[":user-id","nil"],[":notifications",["{}"]],[":router",["[]",":home","nil"]],[":results",["{}"]]]],["def","user",["{}",[":id","nil"],[":name","nil"],[":tag-ids",["hash-set"]],[":avatar","default-avatar"],[":password","|"]]],["def","tag",["{}",[":id","nil"],[":text","nil"]]],["def","topic",["{}",[":id","nil"],[":text","nil"],[":tag-ids",["hash-set"]],[":time","nil"]]],["def","message",["{}",[":id","nil"],[":user-id","nil"],[":topic-id","nil"],[":time","nil"],[":text","|"]]],["def","store",["{}",[":state","nil"],[":my-tags",["list"]],[":tags",["list"]],[":topics",["list"]],[":my-topics",["list"]],[":user","nil"],[":current-topic","nil"],[":live-users",["list"]],[":buffer","|"]]],["def","notification",["{}",[":id","nil"],[":text","|"],[":type",":info"]]]] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
[["ns","teakits-server.updater.core",[":require",["[]","teakits-server.updater.state",":as","state"],["[]","teakits-server.updater.user",":as","user"]]],["defn","no-op-updater",["db","op-data","state-id","op-id","op-time"],"db"],["defn","update-store",["db","op","op-data","state-id","op-id","op-time"],["--",".log","js/console","|trying to update store"],["let",[["hint","|found no handler for:"],["update-method",["case","op",[":state/connect","state/connect"],[":state/disconnect","state/connect"],[":state/route","state/route"],[":state/buffer","state/buffer"],[":user/enter","user/enter"],[":user/rm-tag","user/rm-tag"],[":user/update","user/update-profile"],[":user/select-tag","user/select-tag"],[":user/logout","user/logout"],["do",["println","hint","op","op-data"],"no-op-updater"]]]],["update-method","db","op-data","state-id","op-id","op-time"]]]] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
[["ns","teakits-server.updater.state",[":require",["[]","teakits-server.schema",":as","schema"]]],["defn","connect",["db","op-data","state-id","op-id","op-time"],["assoc-in","db",["[]",":states","state-id"],["assoc","schema/state",":id","state-id"]]],["defn","disconnect",["db","op-data","state-id","op-id","op-time"],["update","db",":states",["fn",["states"],["dissoc","states","state-id"]]]],["defn","route",["db","op-data","state-id","op-id","op-time"],["->","db",["assoc-in",["[]",":states","state-id",":router"],["if",["keyword?","op-data"],["[]","op-data","nil"],"op-data"]],["assoc-in",["[]",":states","state-id",":buffer"],"|"]]],["defn","buffer",["db","op-data","state-id","op-id","op-time"],["assoc-in","db",["[]",":states","state-id",":buffer"],"op-data"]]] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
[["ns","teakits-server.updater.user",[":require",["[]","teakits-server.schema",":as","schema"],["[]","teakits-server.util.list",":refer",["[]","find-one"]]]],["defn","enter",["db","op-data","state-id","op-id","op-time"],["let",[["username",[":name","op-data"]],["password",[":password","op-data"]],["maybe-user",["find-one",["fn",["user"],["=","username",[":name","user"]]],["vals",[":users","db"]]]]],["if",["some?","maybe-user"],["if",["=","password",[":password","maybe-user"]],["->","db",["assoc-in",["[]",":states","state-id",":user-id"],[":id","maybe-user"]],["assoc-in",["[]",":states","state-id",":router"],["[]",":my-tags","nil"]]],["do",["println","|wrong password","password","maybe-user"],"db"]],["->","db",["assoc-in",["[]",":users","op-id"],["assoc","schema/user",":id","op-id",":name","username",":password","password"]],["assoc-in",["[]",":states","state-id",":router"],["[]",":my-tags","nil"]],["assoc-in",["[]",":states","state-id",":user-id"],"op-id"]]]]],["defn","rm-tag",["db","op-data","state-id","op-id","op-time"],["let",[["state",["get-in","db",["[]",":states","state-id"]]],["user-id",[":user-id","state"]],["user",["get-in","db",["[]",":users","user-id"]]]],["update-in","db",["[]",":users","user-id",":tag-ids"],["fn",["tag-ids"],["->>","tag-ids",["filter",["fn",["tag-id"],["not=","tag-id","op-data"]]],["into",["hash-set"]]]]]]],["defn","select-tag",["db","op-data","state-id","op-id","op-time"],["let",[["user-id",["get-in","db",["[]",":states","state-id",":user-id"]]]],["update-in","db",["[]",":users","user-id",":tag-ids"],["fn",["tag-ids"],["if",["<",["count","tag-ids"],"5"],["into",["hash-set"],["conj","tag-ids","op-data"]],"tag-ids"]]]]],["defn","update-profile",["db","op-data","state-id","op-id","op-time"],["let",[["user-id",["get-in","db",["[]",":states","state-id",":user-id"]]]],["update-in","db",["[]",":users","user-id"],["fn",["user"],["merge","user","op-data"]]]]],["defn","logout",["db","op-data","state-id","op-id","op-time"],["assoc-in","db",["[]",":states","state-id",":user-id"],"nil"]]] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
[["ns","teakits-server.util.list"],["defn","find-one",["method","xs"],["if",["=","0",["count","xs"]],"nil",["let",[["cursor",["first","xs"]]],["if",["method","cursor"],"cursor",["recur","method",["rest","xs"]]]]]],["defn","filter-n",[["n","method","xs"],["filter-n",["list"],"n","method","xs"]],[["acc","n","method","xs"],["if",["=","0",["count","xs"]],"acc",["let",[["cursor",["first","xs"]],["next-acc",["if",["method","cursor"],["cons","cursor","acc"],"acc"]]],["if",[">=",["count","next-acc"],"n"],"next-acc",["recur","next-acc","n","method",["rest","xs"]]]]]]]] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
[["ns","teakits-server.view.scene"]] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
[["ns","teakits-server.view.viewer",[":require",["[]","teakits-server.schema",":as","schema"]]],["defn","extract-tree",["state-id","db"],["let",[["state",["get-in","db",["[]",":states","state-id"]]],["router",[":router","state"]],["user-id",[":user-id","state"]],["live-users",["->>",["vals",[":states","db"]],["filter",["fn",["state"],["some?",[":user-id","state"]]]],["map",["fn",["state"],["get-in","db",["[]",":users",[":user-id","state"]]]]]]]],["if",["some?","user-id"],["let",[["user",["get-in","db",["[]",":users","user-id"]]],["router",["get-in","db",["[]",":states","state-id",":router"]]],["my-tags",["->>",[":tag-ids","user"],["map",["fn",["tag-id"],["get-in","db",["[]",":tags","tag-id"]]]]]],["tags",["map","val",[":tags","db"]]],["topics",["->>",["vals",[":topics","db"]],["map",["fn",["topic"],["let",[["tags",["->>",[":tag-ids","topic"],["map",["fn",["tag-id"],["get-in","db",["[]",":tags","tag-id"]]]]]]],["->","topic",["dissoc",":messages"],["assoc",":tags","tags"],["assoc",":messages-count",["count",[":messages","topic"]]]]]]]]],["my-topics",["->>",["vals",[":topics","db"]],["filter",["fn",["topic"],["if",["and",["=",":topics",["first","router"]],["some?",["get","router","1"]]],["contains?",[":tag-ids","topic"],["get","router","1"]],["some",["fn",["tag-id"],["contains?",[":tag-ids","topic"],"tag-id"]],[":tag-ids","user"]]]]],["map",["fn",["topic"],["let",[["tags",["->>",[":tag-ids","topic"],["map",["fn",["tag-id"],["get-in","db",["[]",":tags","tag-id"]]]]]]],["->","topic",["dissoc",":messages"],["assoc",":tags","tags"],["assoc",":messages-count",["count",[":messages","topic"]]]]]]]]],["topic-id",["if",["=",":chat-room",["first","router"]],["get","router","1"],"nil"]],["current-topic",["if",["nil?","topic-id"],"nil",["update",["get-in","db",["[]",":topics","topic-id"]],":messages",["fn",["messages"],["->>","messages",["map",["fn",["entry"],["let",[["message",["val","entry"]],["avatar",["get-in","db",["[]",":users",[":user-id","message"],":avatar"]]],["new-message",["assoc","message",":avatar",["if",[">",["count","avatar"],"5"],"avatar","schema/default-avatar"]]]],["[]",["key","entry"],"new-message"]]]],["into",["{}"]]]]]]],["buffers",["if",["nil?","topic-id"],["list"],["->>",["vals",[":states","db"]],["filter",["fn",["state"],["and",["some?",[":user-id","state"]],[">=",["count",[":buffer","state"]],"0"],["=",[":router","state"],"router"]]]],["map",["fn",["state"],["let",[["user",["get-in","db",["[]",":users",[":user-id","state"]]]]],["{}",[":id","state-id"],[":text",[":buffer","state"]],[":avatar",[":avatar","user"]],[":user","user"]]]]]]]]],["assoc","schema/store",":state","state",":tags","tags",":my-tags","my-tags",":topics","topics",":user","user",":current-topic","current-topic",":live-users","live-users",":buffers","buffers",":my-topics","my-topics"]],["assoc","schema/store",":state","state",":live-users","live-users"]]]]] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
|
||
(ns teakits-server.core | ||
(:require-macros [cljs.core.async.macros :refer [go]]) | ||
(:require [cljs.nodejs :as nodejs] | ||
[teakits-server.schema :as schema] | ||
[teakits-server.updater.core :refer [update-store]] | ||
[teakits-server.view.viewer :refer [extract-tree]] | ||
[cumulo-server.core :refer [setup-server! reload-renderer!]] | ||
[cljs.reader :as reader])) | ||
|
||
(def fs (js/require "fs")) | ||
|
||
(def db-filename "db.edn") | ||
|
||
(defonce data-center | ||
(atom | ||
(if (.existsSync fs db-filename) | ||
(let [old-db (reader/read-string | ||
(.readFileSync fs db-filename "utf8"))] | ||
(assoc old-db :states {})) | ||
schema/database))) | ||
|
||
(defonce file-cache (atom @data-center)) | ||
|
||
(defn -main [] | ||
(nodejs/enable-util-print!) | ||
(js/setInterval | ||
(fn [] | ||
(if (not= @data-center @file-cache) | ||
(do | ||
(reset! file-cache @data-center) | ||
(.writeFileSync fs db-filename (pr-str @file-cache)) | ||
(println "wrote to " db-filename)))) | ||
20000) | ||
(setup-server! | ||
data-center | ||
update-store | ||
identity | ||
extract-tree | ||
{:port 4010}) | ||
(println "server started")) | ||
|
||
(set! *main-cli-fn* -main) | ||
|
||
(defn on-jsload [] | ||
(println "reload") | ||
(reload-renderer! @data-center update-store identity extract-tree)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
|
||
(ns teakits-server.schema) | ||
|
||
(def default-avatar "http://tp2.sinaimg.cn/1258256457/50/5616578718/1") | ||
|
||
(def database {:tags {}, :states {}, :topics {}, :users {}}) | ||
|
||
(def state | ||
{:router [:home nil], | ||
:user-id nil, | ||
:notifications {}, | ||
:id nil, | ||
:results {}}) | ||
|
||
(def user | ||
{:password "", | ||
:name nil, | ||
:id nil, | ||
:avatar default-avatar, | ||
:tag-ids (hash-set)}) | ||
|
||
(def tag {:id nil, :text nil}) | ||
|
||
(def topic {:time nil, :id nil, :tag-ids (hash-set), :text nil}) | ||
|
||
(def message | ||
{:time nil, :user-id nil, :id nil, :topic-id nil, :text ""}) | ||
|
||
(def store | ||
{:my-topics (list), | ||
:tags (list), | ||
:my-tags (list), | ||
:state nil, | ||
:topics (list), | ||
:live-users (list), | ||
:current-topic nil, | ||
:user nil, | ||
:buffer ""}) | ||
|
||
(def notification {:type :info, :id nil, :text ""}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
|
||
(ns teakits-server.updater.core | ||
(:require [teakits-server.updater.state :as state] | ||
[teakits-server.updater.user :as user])) | ||
|
||
(defn no-op-updater [db op-data state-id op-id op-time] db) | ||
|
||
(defn update-store [db op op-data state-id op-id op-time] | ||
(comment .log js/console "trying to update store") | ||
(let [hint "found no handler for:" | ||
update-method (case | ||
op | ||
:state/connect | ||
state/connect | ||
:state/disconnect | ||
state/connect | ||
:state/route | ||
state/route | ||
:state/buffer | ||
state/buffer | ||
:user/enter | ||
user/enter | ||
:user/rm-tag | ||
user/rm-tag | ||
:user/update | ||
user/update-profile | ||
:user/select-tag | ||
user/select-tag | ||
:user/logout | ||
user/logout | ||
(do (println hint op op-data) no-op-updater))] | ||
(update-method db op-data state-id op-id op-time))) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
|
||
(ns teakits-server.updater.state | ||
(:require [teakits-server.schema :as schema])) | ||
|
||
(defn connect [db op-data state-id op-id op-time] | ||
(assoc-in db [:states state-id] (assoc schema/state :id state-id))) | ||
|
||
(defn disconnect [db op-data state-id op-id op-time] | ||
(update db :states (fn [states] (dissoc states state-id)))) | ||
|
||
(defn route [db op-data state-id op-id op-time] | ||
(-> db | ||
(assoc-in | ||
[:states state-id :router] | ||
(if (keyword? op-data) [op-data nil] op-data)) | ||
(assoc-in [:states state-id :buffer] ""))) | ||
|
||
(defn buffer [db op-data state-id op-id op-time] | ||
(assoc-in db [:states state-id :buffer] op-data)) |
Oops, something went wrong.