diff options
Diffstat (limited to 'lib/dialyzer/test/opaque_SUITE_data/src/ewgi/ewgi_api.erl')
-rw-r--r-- | lib/dialyzer/test/opaque_SUITE_data/src/ewgi/ewgi_api.erl | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/lib/dialyzer/test/opaque_SUITE_data/src/ewgi/ewgi_api.erl b/lib/dialyzer/test/opaque_SUITE_data/src/ewgi/ewgi_api.erl new file mode 100644 index 0000000000..60da757d3b --- /dev/null +++ b/lib/dialyzer/test/opaque_SUITE_data/src/ewgi/ewgi_api.erl @@ -0,0 +1,65 @@ +%%%------------------------------------------------------------------- +%%% File : ewgi_api.erl +%%% Authors : Filippo Pacini <[email protected]> +%%% Hunter Morris <[email protected]> +%%% License : +%%% The contents of this file are subject to the Mozilla Public +%%% License Version 1.1 (the "License"); you may not use this file +%%% except in compliance with the License. You may obtain a copy of +%%% the License at http://www.mozilla.org/MPL/ +%%% +%%% Software distributed under the License is distributed on an "AS IS" +%%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +%%% the License for the specific language governing rights and +%%% limitations under the License. +%%% The Initial Developer of the Original Code is S.G. Consulting +%%% srl. Portions created by S.G. Consulting s.r.l. are Copyright (C) +%%% 2007 S.G. Consulting srl. All Rights Reserved. +%%% +%%% @doc +%%% <p>ewgi API. Defines a low level CGI like API.</p> +%%% +%%% @end +%%% +%%% Created : 10 Oct 2007 by Filippo Pacini <[email protected]> +%%%------------------------------------------------------------------- +-module(ewgi_api). + +-include_lib("ewgi.hrl"). + +-export([get_all_headers/1, get_all_data/1]). + +-spec request(ewgi_context()) -> ewgi_request(). +request(Ctx) when ?IS_EWGI_CONTEXT(Ctx) -> + ?GET_EWGI_REQUEST(Ctx). + +-spec headers(ewgi_context()) -> ewgi_http_headers(). +headers(Ctx) when ?IS_EWGI_CONTEXT(Ctx) -> + ?GET_HTTP_HEADERS(request(Ctx)). + +get_header_value(Hdr0, Ctx) when is_list(Hdr0), ?IS_EWGI_CONTEXT(Ctx) -> + Hdr = string:to_lower(Hdr0), + get_header1(Hdr, Ctx). + +get_header1("accept", Ctx) when ?IS_EWGI_CONTEXT(Ctx) -> + ?GET_HTTP_ACCEPT(headers(Ctx)). + +unzip_header_value([{_,_}|_]=V) -> + {_, V1} = lists:unzip(V), + string:join(V1, ", "); +unzip_header_value(V) -> + V. + +get_all_headers(Ctx) when ?IS_EWGI_CONTEXT(Ctx) -> + H = headers(Ctx), + Other = gb_trees:to_list(?GET_HTTP_OTHER(H)), + Acc = [{K, unzip_header_value(V)} || {K, V} <- Other], + L = [{"accept", get_header_value("accept", Ctx)}|Acc], + lists:filter(fun({_, undefined}) -> false; (_) -> true end, L). + +-spec ewgi_spec(ewgi_context()) -> ewgi_spec(). +ewgi_spec(Ctx) when ?IS_EWGI_CONTEXT(Ctx) -> + ?GET_EWGI(request(Ctx)). + +get_all_data(Ctx) when ?IS_EWGI_CONTEXT(Ctx) -> + ?GET_EWGI_DATA(ewgi_spec(Ctx)). |