35 lines
603 B
Elixir
35 lines
603 B
Elixir
defmodule Localiser.Domain.Rooms do
|
|
import Ecto.Query
|
|
|
|
alias Localiser.Repo
|
|
alias Localiser.Domain.Schema.Room
|
|
|
|
def list_rooms do
|
|
Repo.all(Room)
|
|
end
|
|
|
|
def list_rooms_for_floor(floor_id) do
|
|
Room
|
|
|> where([r], r.floor_id == ^floor_id)
|
|
|> Repo.all()
|
|
end
|
|
|
|
def get_room!(id), do: Repo.get!(Room, id)
|
|
|
|
def create_room(attrs) do
|
|
%Room{}
|
|
|> Room.changeset(attrs)
|
|
|> Repo.insert()
|
|
end
|
|
|
|
def update_room(%Room{} = room, attrs) do
|
|
room
|
|
|> Room.changeset(attrs)
|
|
|> Repo.update()
|
|
end
|
|
|
|
def delete_room(%Room{} = room) do
|
|
Repo.delete(room)
|
|
end
|
|
end
|