Skip to content

Instantly share code, notes, and snippets.

@w01fe
Last active January 2, 2016 03:58
Show Gist options
  • Save w01fe/8246933 to your computer and use it in GitHub Desktop.
Save w01fe/8246933 to your computer and use it in GitHub Desktop.
(ns schema-examples (:require [schema.core :as s]))
(def CommentRequest
{(s/optional-key :parent-comment-id) long
:text String
:share-services [(s/enum :twitter :facebook :google)]})
(def +good-request+
{:parent-comment-id 2128123123
:text "This is awesome!"
:share-services [:twitter :facebook]})
(s/validate CommentRequest +good-request+)
;; ==> +good-request+
(def +bad-request+
{:parent-comment-id (int 2128123123)
:text "This is awesome!"
:share-services ["twitter" "facebook"]})
(s/validate CommentRequest +bad-request+)
;; Exception -- Value does not match schema:
;; {:parent-comment-id (not (instance? java.lang.Long 2128123123)),
;; :share-services [(not (#{:facebook :google :twitter} "twitter"))
;; (not (#{:facebook :google :twitter} "facebook"))]}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment