-
Notifications
You must be signed in to change notification settings - Fork 0
/
core.clj
74 lines (62 loc) · 3.06 KB
/
core.clj
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
(ns matvaretabellen.core
(:require [datomic-type-extensions.api :as d]
[matvaretabellen.foodcase-import :as foodcase-import]
[matvaretabellen.i18n :as i18n]
[matvaretabellen.ingest :as ingest]
[matvaretabellen.pages :as pages])
(:import (java.time Instant)))
(defn on-started [conn powerpack-app]
(ingest/on-started conn powerpack-app))
(defn get-context [config foods-conn]
{:app/config config
:foods/db (d/db foods-conn)
:time/instant (Instant/now)
:matomo/site-id "7"})
(defn create-app [env config]
(let [foods-conn (d/connect (:foods/datomic-uri config))]
(cond-> {:site/default-locale :no
:site/title "Matvaretabellen"
:datomic/uri "datomic:mem://matvaretabellen"
:datomic/schema-file "resources/app-schema.edn"
:optimus/assets [{:public-dir "public"
:paths [#"/images/*.*"]}]
:optimus/bundles {"styles.css"
{:public-dir "public"
:paths [(str "/css/theme-" (:app/theme config) ".css")
"/css/mmm.css"
"/css/matvaretabellen.css"]}
"/app.js"
{:public-dir "public"
:paths ["/js/compiled/app.js"]}}
:powerpack/build-dir "docker/build"
:powerpack/content-dir "resources/content"
:powerpack/source-dirs ["src" "ui/src" "dev"]
:powerpack/resource-dirs ["resources" "ui/resources"]
:powerpack/port 5053
:powerpack/log-level :debug
:powerpack/create-ingest-tx #'ingest/create-tx
:powerpack/render-page #'pages/render-page
:powerpack/get-context #(get-context config foods-conn)
:powerpack/on-started #(on-started foods-conn %)
:m1p/dictionaries {:nb ["src/matvaretabellen/i18n/nb.edn"]
:en ["src/matvaretabellen/i18n/en.edn"]}
:m1p/dictionary-fns {:fn/num #'i18n/m1p-fn-num
:fn/enumerate #'i18n/m1p-fn-enumerate}}
(= :build env)
(assoc :site/base-url "https://www.matvaretabellen.no")
(= :dev env) ;; serve figwheel compiled js
(assoc :powerpack/dev-assets-root-path "public"))))
(defn create-build-app [config]
(foodcase-import/create-database-from-scratch (:foods/datomic-uri config))
(-> (create-app :build config)
(assoc :powerpack/log-level :info)))
(defn wrap-tracer-pages [on-started]
(fn [powerpack-app]
@(d/transact (:datomic/conn powerpack-app)
[{:page/uri "/tracer/no-script/" :page/kind :page.kind/tracer-proxy}
{:page/uri "/tracer/report/" :page/kind :page.kind/tracer-proxy}
{:page/uri "/tracer/infos/" :page/kind :page.kind/tracer-proxy}])
(on-started powerpack-app)))
(defn create-dev-app [config]
(-> (create-app :dev config)
(update :powerpack/on-started wrap-tracer-pages)))