fix: sensor schema drift
This commit is contained in:
@@ -6,7 +6,10 @@ defmodule Localiser.Domain.Sensors do
|
||||
alias Localiser.Domain.Schema.SensorCalibration
|
||||
|
||||
def list_sensors do
|
||||
Repo.all(Sensor)
|
||||
Sensor
|
||||
|> Repo.all()
|
||||
|> Repo.preload(:room)
|
||||
|> Enum.map(&populate_floor_coords/1)
|
||||
end
|
||||
|
||||
def list_unplaced do
|
||||
@@ -28,7 +31,12 @@ defmodule Localiser.Domain.Sensors do
|
||||
|> Repo.all()
|
||||
end
|
||||
|
||||
def get_sensor!(id), do: Repo.get!(Sensor, id)
|
||||
def get_sensor!(id) do
|
||||
Sensor
|
||||
|> Repo.get!(id)
|
||||
|> Repo.preload(:room)
|
||||
|> populate_floor_coords()
|
||||
end
|
||||
|
||||
def get_sensor_by_sensor_id(sensor_id) do
|
||||
Repo.get_by(Sensor, sensor_id: sensor_id)
|
||||
@@ -108,6 +116,7 @@ defmodule Localiser.Domain.Sensors do
|
||||
def place_sensor(%Sensor{} = sensor, room_id, {x, y}) do
|
||||
with {:ok, sensor} <- update_sensor(sensor, %{room_id: room_id, x: x, y: y}) do
|
||||
room = Repo.preload(sensor, :room).room
|
||||
sensor = populate_floor_coords(%{sensor | room: room})
|
||||
Phoenix.PubSub.broadcast(Localiser.PubSub, "sensors", {:sensor_enrolled, sensor, room})
|
||||
{:ok, sensor}
|
||||
end
|
||||
@@ -121,4 +130,13 @@ defmodule Localiser.Domain.Sensors do
|
||||
{:ok, sensor}
|
||||
end
|
||||
end
|
||||
|
||||
defp populate_floor_coords(%Sensor{room: nil} = sensor), do: sensor
|
||||
|
||||
defp populate_floor_coords(%Sensor{room: room} = sensor) do
|
||||
%{sensor |
|
||||
floor_x: (room.x || 0.0) + (sensor.x || 0.0),
|
||||
floor_y: (room.y || 0.0) + (sensor.y || 0.0)
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user