0 | ||| HTTP versions
 1 | module Pact.WAI.Version
 2 |
 3 | import Derive.Prelude
 4 | import Pact.WAI.HTTPErr
 5 |
 6 | %language ElabReflection
 7 |
 8 |
 9 | ||| HTTP version enum
10 | ||| Defines supported HTTP protocol versions
11 | public export
12 | data Version = V10 | V11 | V20
13 |
14 | %runElab derive "Version" [Show,Eq,Ord]
15 |
16 |
17 | ||| Parse HTTP version string
18 | ||| 
19 | ||| Convert string to Version enum value
20 | ||| @ s Version string (e.g. "HTTP/1.0", "HTTP/1.1", etc.)
21 | public export
22 | version : String -> Either HTTPErr Version
23 | version "HTTP/1.0" = Right V10
24 | version "HTTP/1.1" = Right V11
25 | version "HTTP/2.0" = Right V20
26 | version _          = Left InvalidRequest
27 |
28 |