0
Fork 0
mirror of https://github.com/ninenines/cowboy.git synced 2025-07-15 12:40:25 +00:00

Improve consistency of return types for cowboy_req API

The signature of parse_header, body_qs, multipart_data and
the set_resp_* functions has changed.

See the cowboy_req module edoc for more details.
This commit is contained in:
Loïc Hoguin 2012-09-16 03:51:07 +02:00
parent e13ab806ea
commit 8d5f8db90a
9 changed files with 116 additions and 103 deletions

View file

@ -8,22 +8,22 @@ init({_Transport, http}, Req, []) ->
{ok, Req, {}}.
handle(Req, State) ->
{Result, Req2} = acc_multipart(Req, []),
{Result, Req2} = acc_multipart(Req),
{ok, Req3} = cowboy_req:reply(200, [], term_to_binary(Result), Req2),
{ok, Req3, State}.
terminate(_Req, _State) ->
ok.
acc_multipart(Req, Acc) ->
{Result, Req2} = cowboy_req:multipart_data(Req),
acc_multipart(Req2, Acc, Result).
acc_multipart(Req) ->
acc_multipart(cowboy_req:multipart_data(Req), []).
acc_multipart(Req, Acc, {headers, Headers}) ->
acc_multipart(Req, [{Headers, []}|Acc]);
acc_multipart(Req, [{Headers, BodyAcc}|Acc], {body, Data}) ->
acc_multipart(Req, [{Headers, [Data|BodyAcc]}|Acc]);
acc_multipart(Req, [{Headers, BodyAcc}|Acc], end_of_part) ->
acc_multipart(Req, [{Headers, list_to_binary(lists:reverse(BodyAcc))}|Acc]);
acc_multipart(Req, Acc, eof) ->
acc_multipart({headers, Headers, Req}, Acc) ->
acc_multipart(cowboy_req:multipart_data(Req), [{Headers, []}|Acc]);
acc_multipart({body, Data, Req}, [{Headers, BodyAcc}|Acc]) ->
acc_multipart(cowboy_req:multipart_data(Req), [{Headers, [Data|BodyAcc]}|Acc]);
acc_multipart({end_of_part, Req}, [{Headers, BodyAcc}|Acc]) ->
acc_multipart(cowboy_req:multipart_data(Req),
[{Headers, list_to_binary(lists:reverse(BodyAcc))}|Acc]);
acc_multipart({eof, Req}, Acc) ->
{lists:reverse(Acc), Req}.