Current section

Files

Jump to
arke_server lib arke_server controllers unit_controller.ex
Raw

lib/arke_server/controllers/unit_controller.ex

defmodule ArkeServer.UnitController do
use ArkeServer, :controller
alias Arke.{QueryManager, LinkManager, StructManager}
alias Arke.Boundary.ArkeManager
alias UnitSerializer
alias ArkeServer.ResponseManager
alias ArkeServer.Utils.{QueryFilters, QueryOrder}
@doc """
Search units
""" && false
def search(conn, %{}) do
project = conn.assigns[:arke_project]
offset = Map.get(conn.query_params, "offset", 0)
limit = Map.get(conn.query_params, "limit", 100)
order = Map.get(conn.query_params, "order", [])
{count, units} =
QueryManager.query(project: project)
|> QueryFilters.apply_query_filters(Map.get(conn.assigns, :filter))
|> QueryOrder.apply_order(order)
|> QueryManager.pagination(offset, limit)
ResponseManager.send_resp(conn, 200, %{
count: count,
items: StructManager.encode(units, :json)
})
end
end