fix: remove sensors from layout on room deletion

This commit is contained in:
2026-05-15 16:51:00 +02:00
parent ed96e044cf
commit 8fc65c8bd2
+5 -4
View File
@@ -4,6 +4,7 @@ defmodule Localiser.Domain.Rooms do
alias Localiser.Repo
alias Localiser.Domain.Schema.Room
alias Localiser.Domain.Schema.Sensor
alias Localiser.Domain.Sensors
def list_rooms do
Repo.all(Room)
@@ -44,12 +45,12 @@ defmodule Localiser.Domain.Rooms do
def delete_room(%Room{} = room) do
sensors = Repo.all(from s in Sensor, where: s.room_id == ^room.id)
Enum.each(sensors, fn s ->
Sensors.remove_from_layout(s)
end)
case Repo.delete(room) do
{:ok, deleted} ->
Enum.each(sensors, fn s ->
Phoenix.PubSub.broadcast(Localiser.PubSub, "sensors", {:sensor_unenrolled, s.sensor_id})
end)
Phoenix.PubSub.broadcast(Localiser.PubSub, "rooms", {:room_deleted, deleted.id, deleted.floor_id})
{:ok, deleted}