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