Skip to content

Commit 633a7f6

Browse files
committed
Load the error into the returned occurrence
1 parent b04d48a commit 633a7f6

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

lib/error_tracker.ex

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -141,10 +141,7 @@ defmodule ErrorTracker do
141141
if enabled?() && !ignored?(error, context) do
142142
sanitized_context = sanitize_context(context)
143143

144-
{_error, occurrence} =
145-
upsert_error!(error, stacktrace, sanitized_context, breadcrumbs, reason)
146-
147-
occurrence
144+
upsert_error!(error, stacktrace, sanitized_context, breadcrumbs, reason)
148145
else
149146
:noop
150147
end
@@ -183,7 +180,7 @@ defmodule ErrorTracker do
183180
Mutes the error so next ocurrences won't send telemetry events.
184181
"""
185182
@spec mute(Error.t()) :: {:ok, Error.t()} | {:error, Ecto.Changeset.t()}
186-
def mute(error = %Error{muted: false}) do
183+
def mute(error = %Error{}) do
187184
changeset = Ecto.Changeset.change(error, muted: true)
188185

189186
Repo.update(changeset)
@@ -193,7 +190,7 @@ defmodule ErrorTracker do
193190
Unmutes the error so next ocurrences will send telemetry events.
194191
"""
195192
@spec unmute(Error.t()) :: {:ok, Error.t()} | {:error, Ecto.Changeset.t()}
196-
def unmute(error = %Error{muted: true}) do
193+
def unmute(error = %Error{}) do
197194
changeset = Ecto.Changeset.change(error, muted: false)
198195

199196
Repo.update(changeset)
@@ -320,12 +317,16 @@ defmodule ErrorTracker do
320317
end
321318

322319
defp upsert_error!(error, stacktrace, context, breadcrumbs, reason) do
320+
status_and_muted_query =
321+
from e in Error,
322+
where: [fingerprint: ^error.fingerprint],
323+
select: {e.status, e.muted}
324+
323325
{existing_status, muted} =
324-
Repo.one(
325-
from e in Error,
326-
where: [fingerprint: ^error.fingerprint],
327-
select: {e.status, e.muted}
328-
)
326+
case Repo.one(status_and_muted_query) do
327+
{existing_status, muted} -> {existing_status, muted}
328+
nil -> {nil, nil}
329+
end
329330

330331
{:ok, {error, occurrence}} =
331332
Repo.transaction(fn ->
@@ -369,6 +370,6 @@ defmodule ErrorTracker do
369370
# Send telemetry for new occurrences if not muted
370371
if !muted, do: Telemetry.new_occurrence(occurrence)
371372

372-
{error, occurrence}
373+
%Occurrence{occurrence | error: error}
373374
end
374375
end

0 commit comments

Comments
 (0)