rate_limited_h.erl 683 B

123456789101112131415161718192021222324
  1. %% This module does rate limiting based on the query string value.
  2. -module(rate_limited_h).
  3. -export([init/2]).
  4. -export([rate_limited/2]).
  5. -export([content_types_provided/2]).
  6. -export([get_text_plain/2]).
  7. init(Req, State) ->
  8. {cowboy_rest, Req, State}.
  9. rate_limited(Req=#{qs := <<"false">>}, State) ->
  10. {false, Req, State};
  11. rate_limited(Req=#{qs := <<"true-date">>}, State) ->
  12. {{true, {{2222, 2, 22}, {11, 11, 11}}}, Req, State};
  13. rate_limited(Req=#{qs := <<"true">>}, State) ->
  14. {{true, 3600}, Req, State}.
  15. content_types_provided(Req, State) ->
  16. {[{{<<"text">>, <<"plain">>, []}, get_text_plain}], Req, State}.
  17. get_text_plain(Req, State) ->
  18. {<<"This is REST!">>, Req, State}.