1 | module Pact.WAI.Method
3 | import Derive.Prelude
4 | import Pact.WAI.HTTPErr
6 | %language ElabReflection
13 | | OPTIONS | TRACE | GET
14 | | POST | PUT | PATCH | DELETE
16 | %runElab derive "Method" [Show,Eq,Ord]
24 | method : String -> Either HTTPErr Method
25 | method "HEAD" = Right HEAD
26 | method "CONNECT" = Right CONNECT
28 | method "OPTIONS" = Right OPTIONS
29 | method "TRACE" = Right TRACE
30 | method "GET" = Right GET
32 | method "POST" = Right POST
33 | method "PUT" = Right PUT
34 | method "PATCH" = Right PATCH
35 | method "DELETE" = Right DELETE
36 | method _ = Left InvalidRequest