diff --git a/lib/localiser/domain/rooms.ex b/lib/localiser/domain/rooms.ex index 1dd8f50..1801c8f 100644 --- a/lib/localiser/domain/rooms.ex +++ b/lib/localiser/domain/rooms.ex @@ -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}