(ns mailhead.routes.home (:require [mailhead.layout :as layout] [mailhead.visualize :as v] [compojure.core :refer [defroutes GET POST]] [ring.util.http-response :refer [ok content-type]] [clojure.java.io :as io])) (defn home-page [] (layout/render "home.html")) (defn about-page [] (layout/render "about.html")) (defn analyze-mailheader [mailheader] (let [token (v/draw mailheader)] ;; TODO: Show image and other data on result.html (layout/render "result.html" {:mailheader mailheader :token token}))) (defn generated-image [token] (-> (clojure.java.io/input-stream (str "generated-images/" token ".svg")) ok (content-type "image/svg+xml"))) (defroutes home-routes (GET "/" [] (home-page)) (GET "/image/:token" [token] (generated-image token)) (POST "/analyze" [mailheader] (analyze-mailheader mailheader)) (GET "/about" [] (about-page)))