Leon4gr45's picture
Upload folder using huggingface_hub (part 3)
88211d3 verified
Raw
History Blame Contribute Delete
1.95 kB
defmodule PlausibleWeb.Plugins.API.Views.Goal do
@moduledoc """
View for rendering Goals in the Plugins API
"""
use PlausibleWeb, :plugins_api_view
def render("index.json", %{
pagination: %{entries: goals, metadata: metadata},
authorized_site: site,
conn: conn
}) do
%{
goals: render_many(goals, __MODULE__, "goal.json", authorized_site: site, as: :goal),
meta: render_metadata_links(metadata, :plugins_api_goals_url, :index, conn.query_params)
}
end
def render("index.json", %{
goals: goals,
authorized_site: site,
conn: conn
}) do
%{
goals: render_many(goals, __MODULE__, "goal.json", authorized_site: site, as: :goal),
meta: render_metadata_links(%{}, :plugins_api_goals_url, :index, conn.query_params)
}
end
def render("goal.json", %{
goal: %{event_name: nil} = pageview
}) do
%{
goal_type: "Goal.Pageview",
goal: %{
id: pageview.id,
display_name: pageview.display_name,
path: pageview.page_path,
custom_props: pageview.custom_props || %{}
}
}
end
def render("goal.json", %{
goal: %{page_path: nil, currency: nil} = custom_event
}) do
%{
goal_type: "Goal.CustomEvent",
goal: %{
id: custom_event.id,
display_name: custom_event.display_name,
event_name: custom_event.event_name,
custom_props: custom_event.custom_props || %{}
}
}
end
def render("goal.json", %{
goal: %{page_path: nil, currency: currency} = revenue_goal
})
when is_atom(currency) do
%{
goal_type: "Goal.Revenue",
goal: %{
id: revenue_goal.id,
display_name: revenue_goal.display_name,
event_name: revenue_goal.event_name,
currency: revenue_goal.currency,
custom_props: revenue_goal.custom_props || %{}
}
}
end
end