1+ struct RequestHandlerFunction <: HTTP.Handler
2+ func:: Function # func(req)
3+ end
4+ (x:: RequestHandlerFunction )(args... ) = x. func (args... )
5+
6+ function handle (h:: RequestHandlerFunction , request:: HTTP.Request , args... )
7+ h (request, args... )
8+ end
9+
10+ function handle (handler:: Function , request:: HTTP.Request , args... )
11+ handler (request, args)
12+ end
13+
14+ function handle (h:: RequestHandlerFunction , request:: HTTP.Request , state, args... )
15+ h (request, state, args... )
16+ end
17+
18+ function handle (handler:: Function , request:: HTTP.Request , state, args... )
19+ handler (request, state, args)
20+ end
21+
122function state_handler (base_handler, state)
2- return HTTP . RequestHandlerFunction (
23+ return RequestHandlerFunction (
324 function (request:: HTTP.Request , args... )
4- response = HTTP . handle (base_handler, request, state, args... )
25+ response = handle (base_handler, request, state, args... )
526 if response. status == 200
627 HTTP. defaultheader! (response, " Content-Type" => HTTP. sniff (response. body))
728 HTTP. defaultheader! (response, " Content-Length" => string (sizeof (response. body)))
@@ -11,7 +32,7 @@ function state_handler(base_handler, state)
1132 )
1233end
1334
14- state_handler (base_handler:: Function , state) = state_handler (HTTP . RequestHandlerFunction (base_handler), state)
35+ state_handler (base_handler:: Function , state) = state_handler (RequestHandlerFunction (base_handler), state)
1536
1637function check_mime (message:: HTTP.Message , mime_list)
1738 ! HTTP. hasheader (message, " Content-Type" ) && return false
2243
2344const default_compress_mimes = [" text/plain" , " text/html" , " text/css" , " text/xml" , " application/json" , " application/javascript" , " application/css" ]
2445function compress_handler (base_handler; mime_types:: Vector{String} = default_compress_mimes, compress_min_size = 500 )
25- return HTTP . RequestHandlerFunction (
46+ return RequestHandlerFunction (
2647 function (request:: HTTP.Request , args... )
27- response = HTTP . handle (base_handler, request, args... )
48+ response = handle (base_handler, request, args... )
2849 if response. status == 200 && sizeof (response. body) >= compress_min_size &&
2950 occursin (" gzip" , HTTP. header (request, " Accept-Encoding" , " " )) && check_mime (response, mime_types)
3051 HTTP. setheader (response, " Content-Encoding" => " gzip" )
@@ -38,14 +59,14 @@ function compress_handler(base_handler; mime_types::Vector{String} = default_com
3859end
3960
4061function compress_handler (base_handler:: Function ; mime_types:: Vector{String} = default_compress_mimes, compress_min_size = 500 )
41- return compress_handler (HTTP . RequestHandlerFunction (base_handler), mime_types = mime_types, compress_min_size = compress_min_size)
62+ return compress_handler (RequestHandlerFunction (base_handler), mime_types = mime_types, compress_min_size = compress_min_size)
4263end
4364
4465function exception_handling_handler (ex_handling_func, base_handler)
45- return HTTP . RequestHandlerFunction (
66+ return RequestHandlerFunction (
4667 function (request:: HTTP.Request , args... )
4768 try
48- return HTTP . handle (base_handler, request, args... )
69+ return handle (base_handler, request, args... )
4970 catch e
5071 return ex_handling_func (e)
5172 end
@@ -55,12 +76,12 @@ function exception_handling_handler(ex_handling_func, base_handler)
5576end
5677
5778exception_handling_handler (ex_handling_func, base_handler:: Function ) =
58- exception_handling_handler (ex_handling_func, HTTP . RequestHandlerFunction (base_handler))
79+ exception_handling_handler (ex_handling_func, RequestHandlerFunction (base_handler))
5980
6081function request_logging_handler (base_handler; exclude = Regex[])
61- return HTTP . RequestHandlerFunction (
82+ return RequestHandlerFunction (
6283 function (request:: HTTP.Request , args... )
63- response = HTTP . handle (base_handler, request, args... )
84+ response = handle (base_handler, request, args... )
6485
6586 return response
6687 end
0 commit comments