Skip to content

Commit 632dc1a

Browse files
Merge pull request #102 from getsentry/http-context
set http context
2 parents ae70cbe + 7203230 commit 632dc1a

File tree

3 files changed

+20
-2
lines changed

3 files changed

+20
-2
lines changed

lib/sentry/context.ex

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ defmodule Sentry.Context do
1515
@user_key :user
1616
@tags_key :tags
1717
@extra_key :extra
18+
@request_key :request
1819
@breadcrumbs_key :breadcrumbs
1920

2021
def get_all do
@@ -23,6 +24,7 @@ defmodule Sentry.Context do
2324
user: Map.get(context, @user_key, %{}),
2425
tags: Map.get(context, @tags_key, %{}),
2526
extra: Map.get(context, @extra_key, %{}),
27+
request: Map.get(context, @request_key, %{}),
2628
breadcrumbs: Map.get(context, @breadcrumbs_key, []),
2729
}
2830
end
@@ -42,6 +44,11 @@ defmodule Sentry.Context do
4244
|> set_context(@tags_key, map)
4345
end
4446

47+
def set_http_context(map) when is_map(map) do
48+
get_context()
49+
|> set_context(@request_key, map)
50+
end
51+
4552
def clear_all do
4653
Process.delete(@process_dictionary_key)
4754
end

lib/sentry/event.ex

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ defmodule Sentry.Event do
4141
%{user: user_context,
4242
tags: tags_context,
4343
extra: extra_context,
44-
breadcrumbs: breadcrumbs_context} = Sentry.Context.get_all()
44+
breadcrumbs: breadcrumbs_context,
45+
request: request_context} = Sentry.Context.get_all()
4546

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

@@ -52,7 +53,8 @@ defmodule Sentry.Event do
5253
tags = Application.get_env(:sentry, :tags, %{})
5354
|> Map.merge(tags_context)
5455
|> Map.merge(Keyword.get(opts, :tags, %{}))
55-
request = Keyword.get(opts, :request, %{})
56+
request = request_context
57+
|> Map.merge(Keyword.get(opts, :request, %{}))
5658
breadcrumbs = Keyword.get(opts, :breadcrumbs, [])
5759
|> Kernel.++(breadcrumbs_context)
5860

test/context_test.exs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,15 @@ defmodule Sentry.ContextTest do
5454
assert event.user == %{}
5555
end
5656

57+
test "storing http context appears when generating event" do
58+
Sentry.Context.set_http_context(%{"url" => "https://wow"})
59+
60+
exception = RuntimeError.exception("error")
61+
event = Sentry.Event.transform_exception(exception, [request: %{"method" => "GET"}])
62+
63+
assert event.request == %{"url" => "https://wow", "method" => "GET"}
64+
end
65+
5766
test "passing in extra context as option overrides Sentry.Context" do
5867
Sentry.Context.set_extra_context(%{"key" => "345", "key1" => "123"})
5968

0 commit comments

Comments
 (0)