Skip to content

Commit 3b05cb0

Browse files
authored
Merge pull request #4531 from sstrigler/mod_invites_http_set_link_header
imprv: send 'Link' http header
2 parents 56f47db + 1fc1626 commit 3b05cb0

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

src/mod_invites_http.erl

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,11 @@
4040
-include("mod_invites.hrl").
4141
-include("translate.hrl").
4242

43-
-define(HTTP(Code, CT, Text), {Code, [{<<"Content-Type">>, CT}], Text}).
43+
-define(HTTP(Code, Headers, CT, Text), {Code, [{<<"Content-Type">>, CT} | Headers], Text}).
44+
-define(HTTP(Code, CT, Text), ?HTTP(Code, [], CT, Text)).
4445
-define(HTTP(Code, Text), ?HTTP(Code, <<"text/plain">>, Text)).
4546
-define(HTTP_OK(Text), ?HTTP(200, <<"text/html">>, Text)).
47+
-define(HTTP_OK(Headers, Text), ?HTTP(200, Headers, <<"text/html">>, Text)).
4648
-define(NOT_FOUND, ?HTTP(404, ?T("NOT FOUND"))).
4749
-define(NOT_FOUND(Text), ?HTTP(404, <<"text/html">>, Text)).
4850
-define(BAD_REQUEST, ?HTTP(400, ?T("BAD REQUEST"))).
@@ -380,7 +382,8 @@ lang(Lang) ->
380382
Lang.
381383

382384
render_ok(Host, Lang, File, Ctx) ->
383-
?HTTP_OK(render(Host, Lang, File, Ctx)).
385+
URI = proplists:get_value(uri, Ctx),
386+
?HTTP_OK([{<<"Link">>, <<"<", URI/binary, ">">>}], render(Host, Lang, File, Ctx)).
384387

385388
render_bad_request(Host, File, Ctx) ->
386389
Renderer = file_to_renderer(Host, File),

test/invites_tests.erl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -673,7 +673,9 @@ http(Config) ->
673673
User = ?config(user, Config),
674674
{TokenURI, LandingPage} = mod_invites:gen_invite(Server),
675675
Token = token_from_uri(TokenURI),
676-
{ok, {{_, 200, _}, _Headers, Body}} = httpc:request(LandingPage),
676+
{ok, {{_, 200, _}, Headers, Body}} = httpc:request(LandingPage),
677+
{match, [TokenURI]} = re:run(proplists:get_value("link", Headers),
678+
"<(.+)>", [{capture, [1], binary}]),
677679
{match, RegistrationURLs} =
678680
re:run(Body,
679681
<<"href=\"", Token/binary, "([a-zA-Z0-9\/\-]+)\"">>,

0 commit comments

Comments
 (0)