File size: 778 Bytes
8da2481 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | defmodule PlausibleWeb.Api.ExternalQueryApiController do
@moduledoc false
use PlausibleWeb, :controller
use Plausible.Repo
use PlausibleWeb.Plugs.ErrorHandler
alias Plausible.Stats.{Query, QueryError}
def query(conn, params) do
site = Repo.preload(conn.assigns.site, :owners)
case Query.parse_and_build(site, params,
debug_metadata: debug_metadata(conn),
now: conn.private[:now]
) do
{:ok, query} ->
results = Plausible.Stats.query(site, query)
json(conn, results)
{:error, %QueryError{message: message}} ->
conn
|> put_status(400)
|> json(%{error: message})
end
end
def schema(conn, _params) do
json(conn, Plausible.Stats.JSONSchema.raw_schema())
end
end
|