diff --git a/README.md b/README.md index 7392e94..601f43f 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ The project is built via [shadow-cljs](https://shadow-cljs.github.io/docs/UsersG You can run a dev build like so: ``` sh -npx shadow-cljs server :app +clojure -A:cljs -m shadow.cljs.devtools.cli server app ``` This starts a web server at localhost:8080 and also starts an nRPL server that you can connect to in your editor @@ -16,13 +16,13 @@ This starts a web server at localhost:8080 and also starts an nRPL server that y Similarly, a production-optimized app can be generated via ``` sh -npx shadow-cljs release :app +clojure -A:cljs -m shadow.cljs.devtools.cli release app ``` If you want to get detailed info about bundle size, try: ``` sh -npx shadow-cljs run shadow.cljs.build-report :app report.html +clojure -A:cljs -m shadow.cljs.build-report app report.html ``` The server component has to be started separately. diff --git a/src/heyarne/all_my_friends/server.clj b/src/heyarne/all_my_friends/server.clj index f4a2e4a..9c4898b 100644 --- a/src/heyarne/all_my_friends/server.clj +++ b/src/heyarne/all_my_friends/server.clj @@ -18,23 +18,24 @@ (io/copy (-> file :tempfile) (io/file (str filename "." img-ext))) (spit (str filename ".json") predictions))) +(defn upload-handler [req] + ;; TODO: Verify params + (let [{:keys [snapshot predictions]} (-> req :params)] + (upload! snapshot predictions) + {:status 201 + :body "Thanks :)"})) + (def app (ring/ring-handler (ring/router - [["/upload" - ;; TODO: Verify params - {:post (fn [req] - (let [{:keys [snapshot predictions]} (-> req :params)] - (upload! snapshot predictions) - {:status 201 - :body "Thanks :)"}))}] + [["/upload" {:post upload-handler}] ["/*" (ring/create-resource-handler)]] {:conflicts (constantly nil)}))) (defonce server (atom nil)) (defn stop-server [] - (when-not (nil? @server) + (when @server (println "Stopping server…") (@server :timeout 100) (reset! server nil)))