This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-12-30
Channels
- # adventofcode (11)
- # beginners (155)
- # boot (627)
- # cider (64)
- # cljs-dev (110)
- # cljsrn (36)
- # clojure (290)
- # clojure-austin (21)
- # clojure-russia (2)
- # clojure-spec (2)
- # clojure-uk (21)
- # clojurescript (81)
- # code-reviews (2)
- # core-async (33)
- # cursive (6)
- # datomic (9)
- # emacs (1)
- # hoplon (472)
- # instaparse (1)
- # lein-figwheel (4)
- # luminus (9)
- # om (2)
- # protorepl (10)
- # re-frame (10)
- # reagent (48)
- # schema (2)
- # sql (5)
- # untangled (17)
- # vim (1)
- # yada (108)
Hi all. I have been spending the last 2 days writing my first clojure code and would just like to get some feedback. All the code does is start a server that listens on 2 routes. On the topics route it will call the message-handler function that gets passed in. I would just like to know if I am on the write track, or if I should change my thinking in some way to be more clojure and less everything else 🙂 thank you
(ns pubsub-watcher.listener
(:require [org.httpkit.server :as server]
[compojure.core :refer :all]
[ring.middleware.defaults :refer :all]
[pubsub-watcher.log :refer [log]]))
(defn- handle-new-message
"Executes the message handler with the topic and message on a seperate thread and returns"
[message-handler topic message]
(future (message-handler topic message))
(str "Messeage posted to " topic " topic"))
(defn- create-routes
[message-handler]
(routes
(GET "/" [] "All Your Queues Are Belong To Us")
(POST "/topics/:topic/message" {{topic :topic} :params body :body} (handle-new-message message-handler topic body))))
(defn- create-server
[routes]
(wrap-defaults routes site-defaults))
(defn- start-server
[port server]
(log (str "** Starting Server on Port " port))
(server/run-server server {:port port}))
(defn start
([port message-handler]
(let [start-server-on-port (partial start-server port)]
(-> message-handler
create-routes
create-server
start-server-on-port)))
([message-handler]
(start 3333 message-handler)))