diff options
author | Adam Cammack <[email protected]> | 2013-03-01 18:02:33 -0600 |
---|---|---|
committer | Adam Cammack <[email protected]> | 2013-03-01 19:54:30 -0600 |
commit | 88414e36b4199f10ed5b29d5fffda037c5d81eca (patch) | |
tree | b8c1aff6602bee191f252ed74c959b0b077b6811 /examples/error_hook/src/error_hook_responder.erl | |
parent | 23b3b038e930646af7f27a439e9dca1cf0c0e453 (diff) | |
download | cowboy-88414e36b4199f10ed5b29d5fffda037c5d81eca.tar.gz cowboy-88414e36b4199f10ed5b29d5fffda037c5d81eca.tar.bz2 cowboy-88414e36b4199f10ed5b29d5fffda037c5d81eca.zip |
Add an example of onresponse hooks
Also fix the guide entry on hooks.
Diffstat (limited to 'examples/error_hook/src/error_hook_responder.erl')
-rw-r--r-- | examples/error_hook/src/error_hook_responder.erl | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/examples/error_hook/src/error_hook_responder.erl b/examples/error_hook/src/error_hook_responder.erl new file mode 100644 index 0000000..31f2d5b --- /dev/null +++ b/examples/error_hook/src/error_hook_responder.erl @@ -0,0 +1,21 @@ +%% Feel free to use, reuse and abuse the code in this file. + +-module(error_hook_responder). + +-export([respond/4]). + +respond(404, Headers, <<>>, Req) -> + {Path, Req2} = cowboy_req:path(Req), + Body = <<"404 Not Found: \"", Path/binary, "\" is not the path you are looking for.\n">>, + Headers2 = lists:keyreplace(<<"content-length">>, 1, Headers, + {<<"content-length">>, integer_to_list(byte_size(Body))}), + {ok, Req3} = cowboy_req:reply(404, Headers2, Body, Req2), + Req3; +respond(Code, Headers, <<>>, Req) when is_integer(Code), Code >= 400 -> + Body = ["HTTP Error ", integer_to_list(Code), $\n], + Headers2 = lists:keyreplace(<<"content-length">>, 1, Headers, + {<<"content-length">>, integer_to_list(iolist_size(Body))}), + {ok, Req2} = cowboy_req:reply(Code, Headers2, Body, Req), + Req2; +respond(_Code, _Headers, _Body, Req) -> + Req. |