Last active
July 16, 2019 20:16
-
-
Save mtnygard/9e6a3c5a107eed02f7616393cbb124b7 to your computer and use it in GitHub Desktop.
Build Pedestal response maps for every standard HTTP status code.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defn response | |
([status body] | |
{:status status | |
:headers {} | |
:body body})) | |
(defmacro http-status [code sym] | |
`(def ~sym (partial response ~code))) | |
(defmacro http-statuses [& pairs] | |
(assert (even? (count pairs))) | |
`(do | |
~@(for [[c s] (partition 2 pairs)] | |
`(http-status ~c ~s)))) | |
(http-statuses | |
200 ok | |
201 created | |
202 accepted | |
204 no-content | |
205 reset-content | |
206 partial-content | |
207 multi-status | |
208 already-reported | |
226 im-used | |
300 multiple-choices | |
301 moved-permanently | |
302 found | |
303 see-other | |
304 not-modified | |
305 use-proxy | |
306 switch-proxy | |
307 temporary-redirect | |
308 permanent-redirect | |
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 payload-too-large | |
414 uri-too-long | |
415 unsupported-media-type | |
416 range-not-satisfiable | |
417 expectation-failed | |
418 im-a-teapot | |
421 misdirected-request | |
422 unprocessable-entity | |
423 locked | |
424 failed-dependency | |
425 too-early | |
426 upgrade-required | |
428 precondition-required | |
429 too-many-requests | |
431 header-fields-too-large | |
451 unavailable-for-legal-reasons | |
500 server-error | |
501 not-implemented | |
502 bad-gateway | |
503 service-unavailable | |
504 gateway-timeout | |
505 http-version-not-supported | |
506 variant-also-negotiates | |
507 insufficient-storage | |
508 loop-detected | |
510 not-extended | |
511 network-authentication-required) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Should work with Ring, too.