File tree Expand file tree Collapse file tree 3 files changed +20
-2
lines changed Expand file tree Collapse file tree 3 files changed +20
-2
lines changed Original file line number Diff line number Diff 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
Original file line number Diff line number Diff 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
Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments