Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@ihodes
Created November 8, 2013 16:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ihodes/7373834 to your computer and use it in GitHub Desktop.
Save ihodes/7373834 to your computer and use it in GitHub Desktop.
(defn def-json-response
[code type]
(letfn [(resp
([] (-> {:error type} response (status code)))
([addl] (-> {:error type}
(merge addl)
response
(status code))))]
(intern 'skrio.core (symbol (str "respond-" code)) resp)))
(def http-status-codes
[;; 100s
[100 "Continue"] [101 "Switching Protocols"]
;; 200s
[200 "OK"] [201 "Created"] [202 "Accepted"] [203 "Non-Authoritative Information"]
[204 "No Content"] [205 "Reset Content"] [206 "Partial Content"]
;; 300s
[300 "Multiple Choices"] [301 "Moved Permanently"] [302 "Found"]
[303 "See Other"] [304 "Not Modified"] [305 "Use Proxy"] [306 "(Unused)"]
[307 "Temporary Redirect"]
;; 400s
[400 "Bad Request"] [401 "Unauthorized"]
[402 "Payment Required"] [403 "Forbidden"] [404 "Not Found"]
[405 "Method Not Allowed"] [406 "Not Acceptable"]
[407 "Proxy Authentication Required"] [408 "Request Timeout"]
[409 "Conflict"] [410 "Gone"] [411 "Length Required"]
[412 "Precondition Failed"] [413 "Request Entity Too Large"]
[414 "Request-URI Too Long"] [415 "Unsupported Media Type"]
[416 "Requested Range Not Satisfiable"] [417 "Expectation Failed"]
;; 500s
[500 "Internal Server Error"] [501 "Not Implemented"] [502 "Bad Gateway"]
[503 "Service Unavailable"] [504 "Gateway Timeout"]
[505 "HTTP Version Not Supported"]])
(map #(apply def-json-response %) http-status-codes)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment