PageRenderTime 103ms CodeModel.GetById 60ms app.highlight 3ms RepoModel.GetById 37ms app.codeStats 0ms

/ucengine/src/helpers/http_helpers.erl

http://github.com/AF83/ucengine
Erlang | 51 lines | 19 code | 3 blank | 29 comment | 0 complexity | d90ee3de0db4c67eabd765f2cc461996 MD5 | raw file
 1%%
 2%%  U.C.Engine - Unified Collaboration Engine
 3%%  Copyright (C) 2011 af83
 4%%
 5%%  This program is free software: you can redistribute it and/or modify
 6%%  it under the terms of the GNU Affero General Public License as published by
 7%%  the Free Software Foundation, either version 3 of the License, or
 8%%  (at your option) any later version.
 9%%
10%%  This program is distributed in the hope that it will be useful,
11%%  but WITHOUT ANY WARRANTY; without even the implied warranty of
12%%  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13%%  GNU Affero General Public License for more details.
14%%
15%%  You should have received a copy of the GNU Affero General Public License
16%%  along with this program.  If not, see <http://www.gnu.org/licenses/>.
17%%
18-module(http_helpers).
19
20-export([error_to_code/1, download/2]).
21
22error_to_code(Error) ->
23    case Error of
24        % 400 Bad Request
25        bad_parameters -> 400;
26        missing_parameters -> 400;
27        % 401 Unauthorized
28        unauthorized -> 401;
29        % 403 Forbidden
30        bad_credentials -> 403;
31        % 404 Not Found
32        not_found -> 404;
33        % 408 Request Timeout
34        request_timeout -> 408;
35        % 409 Conflict
36        conflict -> 409;
37        % 500 Internal Server Error
38        unexpected_error -> 500;
39        % 501 Not Implemented
40        not_implemented -> 501;
41        % Default error
42        _ -> 500
43    end.
44
45%%
46%% Download file
47%%
48download(Filename, Content) ->
49    [{status, 200},
50     {header, {"Content-Disposition", "filename=" ++ yaws_api:url_encode(Filename)}},
51     {content, "application/octet-stream", Content}].