mirror of
https://github.com/ninenines/cowboy.git
synced 2025-07-14 12:20:24 +00:00
30 lines
834 B
Erlang
30 lines
834 B
Erlang
%% This module defines the ranges_provided callback
|
|
%% and return something different depending on query string.
|
|
|
|
-module(ranges_provided_h).
|
|
|
|
-export([init/2]).
|
|
-export([content_types_provided/2]).
|
|
-export([ranges_provided/2]).
|
|
-export([get_text_plain/2]).
|
|
|
|
init(Req, State) ->
|
|
{cowboy_rest, Req, State}.
|
|
|
|
content_types_provided(Req, State) ->
|
|
{[{{<<"text">>, <<"plain">>, []}, get_text_plain}], Req, State}.
|
|
|
|
ranges_provided(Req=#{qs := <<"list">>}, State) ->
|
|
{[
|
|
{<<"bytes">>, get_text_plain_bytes},
|
|
{<<"pages">>, get_text_plain_pages},
|
|
{<<"chapters">>, get_text_plain_chapters}
|
|
], Req, State};
|
|
ranges_provided(Req=#{qs := <<"none">>}, State) ->
|
|
{[], Req, State};
|
|
%% Simulate the callback being missing in other cases.
|
|
ranges_provided(_, _) ->
|
|
no_call.
|
|
|
|
get_text_plain(Req, State) ->
|
|
{<<"This is REST!">>, Req, State}.
|