Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,9 +1,27 @@
defmodule BuildingServerWeb.BuildingController do
use BuildingServerWeb, :controller
alias BuildingServer.{Repo, Building}
alias BuildingServer.Repo
import Ecto.Query, only: [from: 2]

def index(conn, _params) do
buildings = Repo.all(Building)
render conn, "index.json", buildings: buildings
query = from bldg in "buildings",
where: bldg.x >= 0
buildings = Repo.all(query)
render conn, "buildings.json", buildings: buildings
end

def get_building(conn, %{"address" => address}) do
query = from bldg in "buildings",
where: bldg.address == ^address
buildings = Repo.all(query)
render conn, "buildings.json", buildings: buildings
end

def get_buildings_in_address(conn, %{"address" => address}) do
query = from bldg in "buildings",
where: bldg.flr == ^address
buildings = Repo.all(query)
render conn, "buildings.json", buildings: buildings
end

end
3 changes: 3 additions & 0 deletions building_server/lib/building_server_web/router.ex
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,8 @@ defmodule BuildingServerWeb.Router do
pipe_through :api

get "/buildings", BuildingController, :index
get "/buildings/:address", BuildingController, :get_building
get "/buildings/in/:address", BuildingController, :get_buildings_in_address

end
end
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
defmodule BuildingServerWeb.BuildingView do
use BuildingServerWeb, :view

def render("index.json", %{buildings: buildings}) do
%{
buildings: Enum.map(buildings, &building_json/1)
}
def render("buildings.json", %{buildings: buildings}) do
buildings
end

def building_json(building) do
Expand Down