38 lines
994 B
Elixir
38 lines
994 B
Elixir
defmodule PlausibleWeb.Plugins.API.Views.SharedLink do
|
|
@moduledoc """
|
|
View for rendering Shared Links in the Plugins API
|
|
"""
|
|
|
|
use PlausibleWeb, :plugins_api_view
|
|
|
|
def render("index.json", %{
|
|
pagination: %{entries: shared_links, metadata: metadata},
|
|
authorized_site: site,
|
|
conn: conn
|
|
}) do
|
|
%{
|
|
shared_links:
|
|
render_many(shared_links, __MODULE__, "shared_link.json",
|
|
authorized_site: site,
|
|
as: :shared_link
|
|
),
|
|
meta:
|
|
render_metadata_links(metadata, :plugins_api_shared_links_url, :index, conn.query_params)
|
|
}
|
|
end
|
|
|
|
def render("shared_link.json", %{
|
|
shared_link: shared_link,
|
|
authorized_site: site
|
|
}) do
|
|
%{
|
|
shared_link: %{
|
|
id: shared_link.id,
|
|
name: shared_link.name,
|
|
password_protected: Plausible.Site.SharedLink.password_protected?(shared_link),
|
|
href: Plausible.Sites.shared_link_url(site, shared_link)
|
|
}
|
|
}
|
|
end
|
|
end
|