defmodule Lab do @moduledoc """ Documentation for Lab. """ alias Lab.Agent @doc """ Gets all projects available for the authenticated user. Returns `{:ok, [%{id: 1}, %{id: 2}, ...]}`. ## Examples iex> Lab.projects {:ok, [%{id: 1}, %{id: 2}, %{id: 3}]} iex> Lab.projects(per_page: 2) {:ok, [%{id: 1}, %{id: 2}]} """ def projects(opts \\ []) do res = Agent.get("/projects", [query: opts]) {:ok, res.body} end @doc """ Gets a single project. Returns `{:ok, %{}}`. ## Examples iex> Lab.project(1) {:ok, %{id: 1}} iex> Lab.projects(per_page: 2) {:ok, [%{id: 1}, %{id: 2}]} """ def project(id, opts \\ []) do res = Agent.get("/projects/" <> "#{id}", [query: opts]) {:ok, res.body} end end