Packages
sentry
0.3.2
13.3.0
13.2.0
13.1.0
13.0.1
13.0.0
12.0.3
12.0.2
12.0.1
12.0.0
11.0.4
11.0.3
11.0.2
11.0.1
11.0.0
10.10.0
10.9.0
10.8.1
10.8.0
10.7.1
10.7.0
10.6.2
10.6.1
10.6.0
10.5.0
10.4.0
10.3.0
10.2.1
10.2.0
10.2.0-rc.2
10.2.0-rc.1
10.1.0
10.0.3
10.0.2
10.0.1
10.0.0
9.1.0
9.0.0
8.1.0
8.0.6
8.0.5
8.0.4
8.0.3
8.0.2
8.0.1
8.0.0
8.0.0-rc.2
8.0.0-rc.1
8.0.0-rc.0
retired
7.2.5
7.2.4
7.2.3
7.2.2
7.2.1
7.2.0
7.1.0
7.0.6
7.0.5
7.0.4
7.0.3
7.0.2
7.0.1
7.0.0
6.4.2
6.4.1
6.4.0
6.3.0
6.2.1
6.2.0
6.1.0
6.0.5
6.0.4
6.0.3
6.0.2
6.0.1
6.0.0
5.0.1
5.0.0
4.0.3
4.0.2
4.0.1
4.0.0
3.0.0
2.2.0
2.1.0
2.0.2
2.0.1
2.0.0
1.1.2
1.1.1
1.1.0
1.0.0
0.3.2
0.3.1
0.3.0
0.2.0
0.1.3
0.1.2
0.1.1
0.1.0
The Official Elixir client for Sentry
Current section
Files
Jump to
Current section
Files
lib/sentry.ex
defmodule Sentry do
import Sentry.Helpers, only: [fetch_private!: 2]
alias Sentry.Exception
alias Sentry.Auth
def init(opts) do
unless Code.ensure_loaded?(Phoenix) do
raise Exception.PhoenixNotLoadedError
end
opts
end
def call(conn, [handler: handler]) when is_atom(handler) do
case Auth.authorize(conn) do
{:ok, conn} -> conn
{:error, reason} ->
conn
|> fetch_private!(:phoenix_controller)
|> apply(handler, [conn, reason])
end
end
def call(conn, [handler: handler, args: args])
when is_atom(handler) and is_list(args) do
case Auth.authorize(conn, args) do
{:ok, conn} -> conn
{:error, reason} ->
conn
|> fetch_private!(:phoenix_controller)
|> apply(handler, [conn, reason])
end
end
def call(conn, [policy: function, handler: handler])
when is_atom(function) and is_atom(handler) do
case Auth.authorize(conn, function) do
{:ok, conn} -> conn
{:error, reason} ->
conn
|> fetch_private!(:phoenix_controller)
|> apply(handler, [conn, reason])
end
end
def call(conn, [policy: [module, function], handler: handler])
when is_atom(module) and is_atom(function) and is_atom(handler) do
call(conn, [policy: [module, function, []], handler: handler])
end
def call(conn, [policy: [module, function, args], handler: handler])
when is_atom(module) and is_atom(function) and is_list(args) and is_atom(handler) do
case apply(module, function, [conn] ++ args) do
{:ok, conn} -> conn
{:error, reason} ->
conn
|> fetch_private!(:phoenix_controller)
|> apply(handler, [conn, reason])
end
end
defmacro __using__(_options) do
quote do
unless Code.ensure_loaded?(Phoenix) do
raise Exception.PhoenixNotLoadedError
end
alias Sentry.Auth
alias Sentry.Tokenizer
end
end
end