aboutsummaryrefslogtreecommitdiffstats
path: root/examples/cookie/src/toppage_handler.erl
blob: b107d5afc991840a3cb0a31a45f595a0c93fa602 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
%% Feel free to use, reuse and abuse the code in this file.

%% @doc Cookie handler.
-module(toppage_handler).

-export([init/3]).
-export([handle/2]).
-export([terminate/3]).

init(_Transport, Req, []) ->
	{ok, Req, undefined}.

handle(Req, State) ->
	NewValue = integer_to_list(random:uniform(1000000)),
	Req2 = cowboy_req:set_resp_cookie(
		<<"server">>, NewValue, [{path, <<"/">>}], Req),
	{ClientCookie, Req3} = cowboy_req:cookie(<<"client">>, Req2),
	{ServerCookie, Req4} = cowboy_req:cookie(<<"server">>, Req3),
	{ok, Body} = toppage_dtl:render([
		{client, ClientCookie},
		{server, ServerCookie}
	]),
	{ok, Req5} = cowboy_req:reply(200,
		[{<<"content-type">>, <<"text/html">>}],
		Body, Req4),
	{ok, Req5, State}.

terminate(_Reason, _Req, _State) ->
	ok.