Skip to content

Commit

Permalink
Merge pull request #102 from getsentry/http-context
Browse files Browse the repository at this point in the history
set http context
  • Loading branch information
mitchellhenke authored Dec 17, 2016
2 parents ae70cbe + 7203230 commit 632dc1a
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 2 deletions.
7 changes: 7 additions & 0 deletions lib/sentry/context.ex
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ defmodule Sentry.Context do
@user_key :user
@tags_key :tags
@extra_key :extra
@request_key :request
@breadcrumbs_key :breadcrumbs

def get_all do
Expand All @@ -23,6 +24,7 @@ defmodule Sentry.Context do
user: Map.get(context, @user_key, %{}),
tags: Map.get(context, @tags_key, %{}),
extra: Map.get(context, @extra_key, %{}),
request: Map.get(context, @request_key, %{}),
breadcrumbs: Map.get(context, @breadcrumbs_key, []),
}
end
Expand All @@ -42,6 +44,11 @@ defmodule Sentry.Context do
|> set_context(@tags_key, map)
end

def set_http_context(map) when is_map(map) do
get_context()
|> set_context(@request_key, map)
end

def clear_all do
Process.delete(@process_dictionary_key)
end
Expand Down
6 changes: 4 additions & 2 deletions lib/sentry/event.ex
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@ defmodule Sentry.Event do
%{user: user_context,
tags: tags_context,
extra: extra_context,
breadcrumbs: breadcrumbs_context} = Sentry.Context.get_all()
breadcrumbs: breadcrumbs_context,
request: request_context} = Sentry.Context.get_all()

stacktrace = Keyword.get(opts, :stacktrace, [])

Expand All @@ -52,7 +53,8 @@ defmodule Sentry.Event do
tags = Application.get_env(:sentry, :tags, %{})
|> Map.merge(tags_context)
|> Map.merge(Keyword.get(opts, :tags, %{}))
request = Keyword.get(opts, :request, %{})
request = request_context
|> Map.merge(Keyword.get(opts, :request, %{}))
breadcrumbs = Keyword.get(opts, :breadcrumbs, [])
|> Kernel.++(breadcrumbs_context)

Expand Down
9 changes: 9 additions & 0 deletions test/context_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,15 @@ defmodule Sentry.ContextTest do
assert event.user == %{}
end

test "storing http context appears when generating event" do
Sentry.Context.set_http_context(%{"url" => "https://wow"})

exception = RuntimeError.exception("error")
event = Sentry.Event.transform_exception(exception, [request: %{"method" => "GET"}])

assert event.request == %{"url" => "https://wow", "method" => "GET"}
end

test "passing in extra context as option overrides Sentry.Context" do
Sentry.Context.set_extra_context(%{"key" => "345", "key1" => "123"})

Expand Down

0 comments on commit 632dc1a

Please sign in to comment.