Skip to content

Commit 989a684

Browse files
authored
Ignores unknown request fields (#676)
1 parent 27de94a commit 989a684

File tree

2 files changed

+4
-17
lines changed

2 files changed

+4
-17
lines changed

lib/sentry/event.ex

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,7 @@ defmodule Sentry.Event do
346346
modules: :persistent_term.get({:sentry, :loaded_applications}),
347347
original_exception: exception,
348348
release: Config.release(),
349-
request: coerce_request(request),
349+
request: struct(%Interfaces.Request{}, request),
350350
sdk: @sdk,
351351
server_name: Config.server_name() || to_string(:net_adm.localhost()),
352352
source: source,
@@ -427,18 +427,6 @@ defmodule Sentry.Event do
427427
end
428428
end
429429

430-
@request_fields %Interfaces.Request{} |> Map.from_struct() |> Map.keys() |> MapSet.new()
431-
432-
defp coerce_request(request) do
433-
Enum.reduce(request, %Interfaces.Request{}, fn {key, value}, acc ->
434-
if key in @request_fields do
435-
Map.replace!(acc, key, value)
436-
else
437-
raise ArgumentError, "unknown field for the request interface: #{inspect(key)}"
438-
end
439-
end)
440-
end
441-
442430
defp add_thread_with_stacktrace(%__MODULE__{} = event, stacktrace) when is_list(stacktrace) do
443431
thread = %Interfaces.Thread{
444432
id: UUID.uuid4_hex(),

test/event_test.exs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -292,10 +292,9 @@ defmodule Sentry.EventTest do
292292
assert event.original_exception == exception
293293
end
294294

295-
test "raises if the :request option contains non-request fields" do
296-
assert_raise ArgumentError, ~r/unknown field for the request interface: :bad_key/, fn ->
297-
Event.create_event(request: %{method: "GET", bad_key: :indeed})
298-
end
295+
test "ignores unknown fields in :request" do
296+
assert %Event{} = event = Event.create_event(request: %{method: "GET", bad_key: :indeed})
297+
assert event.request == %Interfaces.Request{method: "GET"}
299298
end
300299
end
301300

0 commit comments

Comments
 (0)