PageRenderTime 46ms CodeModel.GetById 24ms RepoModel.GetById 0ms 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. -export([error_to_code/1, download/2]).
  20. error_to_code(Error) ->
  21. case Error of
  22. % 400 Bad Request
  23. bad_parameters -> 400;
  24. missing_parameters -> 400;
  25. % 401 Unauthorized
  26. unauthorized -> 401;
  27. % 403 Forbidden
  28. bad_credentials -> 403;
  29. % 404 Not Found
  30. not_found -> 404;
  31. % 408 Request Timeout
  32. request_timeout -> 408;
  33. % 409 Conflict
  34. conflict -> 409;
  35. % 500 Internal Server Error
  36. unexpected_error -> 500;
  37. % 501 Not Implemented
  38. not_implemented -> 501;
  39. % Default error
  40. _ -> 500
  41. end.
  42. %%
  43. %% Download file
  44. %%
  45. download(Filename, Content) ->
  46. [{status, 200},
  47. {header, {"Content-Disposition", "filename=" ++ yaws_api:url_encode(Filename)}},
  48. {content, "application/octet-stream", Content}].