Skip to content

Instantly share code, notes, and snippets.

@Odinodin
Created August 9, 2013 09:32
Show Gist options
  • Save Odinodin/6192393 to your computer and use it in GitHub Desktop.
Save Odinodin/6192393 to your computer and use it in GitHub Desktop.
Clojure validation with Metis
(ns app.controllers.validation
(:require [app.views.a :as a-view]
[metis.core :as metis]))
;; Validates that the required environment keys are present
(metis/defvalidator :environment-validator [[:core-url :db :auth-token] :presence ])
(metis/defvalidator :preview-body-validator [[:type :filter :template :index ] :presence ])
(metis/defvalidator :preview-request-validator [:body :preview-body-validator ])
(defn validate-request
[request request-validator ok-function]
(let [validation-result (into
(request-validator request)
(environment-validator request))]
(if (empty? validation-result)
(ok-function request)
(a-view/bad-request validation-result))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment