Skip to content

Instantly share code, notes, and snippets.

@kognate
Created December 23, 2011 15:41
Show Gist options
  • Save kognate/1514494 to your computer and use it in GitHub Desktop.
Save kognate/1514494 to your computer and use it in GitHub Desktop.
(ns newsite.views.welcome
(:require [newsite.views.common :as common]
[noir.session :as session]
[noir.server :as server]
[noir.response :as response])
(:use [noir.core :only [defpage]]
[hiccup.core :only [html]]))
(defn- log [msg & vals]
(let [line (apply format msg vals)]
(locking System/out (println line))))
(defn wrap-request-logging [handler]
(fn [{:keys [request-method uri] :as req}]
(let [start (System/currentTimeMillis)
resp (handler req)
status (:status resp)
finish (System/currentTimeMillis)
total (- finish start)
user (noir.session/get :username)]
(log "request[%s for user: %s] %s %s (%dms)" status user request-method uri total)
resp)))
(server/add-middleware wrap-request-logging)
(defn can-access [user res]
false)
(defn provides [res & content]
(let [curuser (noir.session/get :username)]
(if (can-access curuser res)
content
(response/status 401 "Denied"))))
(defpage "/" []
(common/layout
[:h1 "Welcome to iRxReminder Control Center"]))
(defpage "/studies" []
(provides :studies
(common/layout
[:p "Welcome to newsite"])))
(defpage "/study/:studyid" {:keys [studyid]}
(html
[:h1 "This is my first page"]
[:p (str "Welcome to study " studyid)]))
(defpage "/participants" []
"<html><body><h1>Hello</h1></body></html>")
(defpage "/participant/:participantid" {:keys [participantid]}
(common/layout
[:p "Participants"]))
(defpage [:get "/studydat/:studyid/:memberid"] {:keys [studyid memberid]}
(response/json {:dat [studyid memberid]}))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment