Skip to content

Commit 5d598e8

Browse files
committed
fix: Extra broadcast for inserts #40
1 parent 32fcb02 commit 5d598e8

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

lib/ecto_watch/watcher_server.ex

+14-3
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ defmodule EctoWatch.WatcherServer do
219219
type,
220220
state.unique_label,
221221
returned_values,
222-
state.identifier_columns
222+
state.options.schema_definition
223223
) do
224224
debug_log(
225225
state.options,
@@ -279,12 +279,23 @@ defmodule EctoWatch.WatcherServer do
279279
end
280280
end
281281

282-
def topics(update_type, unique_label, returned_values, identifier_columns)
282+
def topics(update_type, unique_label, returned_values, schema_definition)
283283
when update_type in ~w[inserted updated deleted]a do
284+
identifier_columns =
285+
case update_type do
286+
:inserted ->
287+
schema_definition.association_columns
288+
289+
_ ->
290+
[schema_definition.primary_key | schema_definition.association_columns]
291+
end
292+
293+
# |> MapSet.new()
294+
284295
[
285296
unique_label
286297
| returned_values
287-
|> Enum.filter(fn {k, _} -> MapSet.member?(identifier_columns, k) end)
298+
|> Enum.filter(fn {k, _} -> k in identifier_columns end)
288299
|> Enum.map(fn {k, v} -> "#{unique_label}|#{k}|#{v}" end)
289300
]
290301
end

0 commit comments

Comments
 (0)