mobilizon.chapril.org-mobil.../lib/web/request_context.ex
Thomas Citharel 4a8064f24f
Move Sentry request context to new module and load it everytime
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-31 10:49:15 +02:00

27 lines
839 B
Elixir

defmodule Mobilizon.Web.RequestContext do
@moduledoc """
Module to put some context into the request
"""
@spec put_request_context(Plug.Conn.t(), Keyword.t()) :: Plug.Conn.t()
def put_request_context(%Plug.Conn{} = conn, _opts \\ []) do
if Application.get_env(:sentry, :dsn) != nil do
Sentry.Context.set_request_context(%{
url: Plug.Conn.request_url(conn),
method: conn.method,
headers: %{
"User-Agent": conn |> Plug.Conn.get_req_header("user-agent") |> List.first(),
Referer: conn |> Plug.Conn.get_req_header("referer") |> List.first()
},
query_string: conn.query_string,
env: %{
REQUEST_ID: conn |> Plug.Conn.get_resp_header("x-request-id") |> List.first(),
SERVER_NAME: conn.host
}
})
end
conn
end
end