raxx v0.11.1 Raxx.Referrer

Manipulate referer header on raxx messages

*NOTE: The Referrer module uses the correct spelling however due to historic reasons the field_name is spelt referer

Summary

Functions

Read referer of the HTTP message

Set the referer of a HTTP message

Functions

fetch(map)

Read referer of the HTTP message.

Examples

iex> %Raxx.Request{headers: [{"referer", "http://www.example.com"}]} |> Raxx.Referrer.fetch
{:ok, %URI{authority: "www.example.com", fragment: nil,
       host: "www.example.com", path: nil, port: 80, query: nil,
       scheme: "http", userinfo: nil}}

iex> %Raxx.Request{headers: []} |> Raxx.Referrer.fetch
{:error, :field_value_not_specified}


iex> %Raxx.Request{headers: [{"referer", "http://www.example.com"}, {"referer", "http://www.example.org"}]} |> Raxx.Referrer.fetch
{:error, :duplicated_field}
serialize_field_value(uri_binary)
set(map, uri)

Set the referer of a HTTP message.

Examples

iex> %Raxx.Request{} |> Raxx.Referrer.set("www.example.com") |> Map.get(:headers)
[{"referer", "www.example.com"}]

iex> uri = %URI{authority: "www.example.com", fragment: nil,
iex>            host: "www.example.com", path: nil, port: 80, query: nil,
iex>            scheme: "http", userinfo: nil}
iex> %Raxx.Request{} |> Raxx.Referrer.set(uri) |> Map.get(:headers)
[{"referer", "http://www.example.com"}]

iex> %Raxx.Request{headers: [{"referer", "www.example.com"}]} |> Raxx.Referrer.set("www.example.org") |> Map.get(:headers)
[{"referer", "www.example.org"}]