@@ -43,7 +43,27 @@ import Data.ByteString (ByteString, intercalate)
43
43
44
44
import Network.HTTP.Media
45
45
import qualified Network.HTTP.Types as HTTP
46
- import qualified Network.HTTP.Types.Header as HTTP
46
+
47
+ ------------------------------------------------------------------------------
48
+ -- HTTP Headers
49
+ -- These are headers not defined for us already in
50
+ -- Network.HTTP.Types
51
+ ------------------------------------------------------------------------------
52
+ -- TODO this exist in http-types-0.9, see CHANGES.txt
53
+ hAcceptCharset :: HTTP. HeaderName
54
+ hAcceptCharset = " Accept-Charset"
55
+
56
+ hAcceptEncoding :: HTTP. HeaderName
57
+ hAcceptEncoding = " Accept-Encoding"
58
+
59
+ hIfMatch :: HTTP. HeaderName
60
+ hIfMatch = " If-Match"
61
+
62
+ hIfUnmodifiedSince :: HTTP. HeaderName
63
+ hIfUnmodifiedSince = " If-Unmodified-Since"
64
+
65
+ hIfNoneMatch :: HTTP. HeaderName
66
+ hIfNoneMatch = " If-None-Match"
47
67
48
68
------------------------------------------------------------------------------
49
69
-- FlowState: StateT used for recording information as we walk the decision
@@ -66,7 +86,7 @@ flow r = evalStateT (b13 r) initFlowState
66
86
trace :: Monad m => Text -> FlowStateT m ()
67
87
trace t = lift $ tell [t]
68
88
69
- ------------------------------------------------------------------------------
89
+ -----------------------------------------------------------------------------
70
90
-- Header value data newtypes
71
91
------------------------------------------------------------------------------
72
92
@@ -305,7 +325,7 @@ e05 r@Resource{..} = do
305
325
trace " e05"
306
326
req <- lift request
307
327
let reqHeaders = requestHeaders req
308
- case lookup HTTP. hAcceptCharset reqHeaders of
328
+ case lookup hAcceptCharset reqHeaders of
309
329
(Just _h) ->
310
330
e06 r
311
331
Nothing ->
@@ -324,7 +344,7 @@ f06 r@Resource{..} = do
324
344
trace " f06"
325
345
req <- lift request
326
346
let reqHeaders = requestHeaders req
327
- case lookup HTTP. hAcceptEncoding reqHeaders of
347
+ case lookup hAcceptEncoding reqHeaders of
328
348
(Just _h) ->
329
349
f07 r
330
350
Nothing ->
@@ -354,7 +374,7 @@ g08 r@Resource{..} = do
354
374
trace " g08"
355
375
req <- lift request
356
376
let reqHeaders = requestHeaders req
357
- case IfMatch <$> lookup HTTP. hIfMatch reqHeaders of
377
+ case IfMatch <$> lookup hIfMatch reqHeaders of
358
378
(Just h) ->
359
379
g09 h r
360
380
Nothing ->
@@ -375,7 +395,7 @@ g07 r@Resource{..} = do
375
395
h12 r@ Resource {.. } = do
376
396
trace " h12"
377
397
modified <- lift lastModified
378
- parsedDate <- lift $ requestHeaderDate HTTP. hIfUnmodifiedSince
398
+ parsedDate <- lift $ requestHeaderDate hIfUnmodifiedSince
379
399
let maybeGreater = do
380
400
lastM <- modified
381
401
headerDate <- parsedDate
@@ -386,7 +406,7 @@ h12 r@Resource{..} = do
386
406
387
407
h11 r@ Resource {.. } = do
388
408
trace " h11"
389
- parsedDate <- lift $ requestHeaderDate HTTP. hIfUnmodifiedSince
409
+ parsedDate <- lift $ requestHeaderDate hIfUnmodifiedSince
390
410
if isJust parsedDate
391
411
then h12 r
392
412
else i12 r
@@ -395,7 +415,7 @@ h10 r@Resource{..} = do
395
415
trace " h10"
396
416
req <- lift request
397
417
let reqHeaders = requestHeaders req
398
- case lookup HTTP. hIfUnmodifiedSince reqHeaders of
418
+ case lookup hIfUnmodifiedSince reqHeaders of
399
419
(Just _h) ->
400
420
h11 r
401
421
Nothing ->
@@ -405,7 +425,7 @@ h07 r@Resource {..} = do
405
425
trace " h07"
406
426
req <- lift request
407
427
let reqHeaders = requestHeaders req
408
- case lookup HTTP. hIfMatch reqHeaders of
428
+ case lookup hIfMatch reqHeaders of
409
429
-- TODO: should we be stripping whitespace here?
410
430
(Just " *" ) ->
411
431
lift $ halt HTTP. status412
@@ -429,7 +449,7 @@ i12 r@Resource{..} = do
429
449
trace " i12"
430
450
req <- lift request
431
451
let reqHeaders = requestHeaders req
432
- case IfNoneMatch <$> lookup HTTP. hIfNoneMatch reqHeaders of
452
+ case IfNoneMatch <$> lookup hIfNoneMatch reqHeaders of
433
453
(Just h) ->
434
454
i13 h r
435
455
Nothing ->
0 commit comments