Skip to content

Commit

Permalink
Show number of owned sites in HS integration with a link to sites lis…
Browse files Browse the repository at this point in the history
…t in CRM
  • Loading branch information
zoldar committed Jul 15, 2024
1 parent f09db60 commit 094274b
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 8 deletions.
7 changes: 6 additions & 1 deletion extra/lib/plausible/help_scout.ex
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,12 @@ defmodule Plausible.HelpScout do
status_link:
Routes.kaffy_resource_url(PlausibleWeb.Endpoint, :show, :auth, :user, user.id),
plan_label: plan_label(user.subscription, plan),
plan_link: plan_link(user.subscription)
plan_link: plan_link(user.subscription),
sites_count: Plausible.Sites.owned_sites_count(user),
sites_link:
Routes.kaffy_resource_url(PlausibleWeb.Endpoint, :index, :sites, :site,
search: "owner:#{user.email}"
)
}}
end
end
Expand Down
9 changes: 9 additions & 0 deletions extra/lib/plausible_web/views/help_scout_view.ex
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,15 @@ defmodule PlausibleWeb.HelpScoutView do
<a href={@plan_link} target="_blank"><%= @plan_label %></a>
</p>
</div>
<div class="sites">
<p class="label">
Owned sites
</p>
<p class="value">
<a href={@sites_link} target="_blank"><%= @sites_count %></a>
</p>
</div>
<% end %>
</body>
</html>
Expand Down
22 changes: 17 additions & 5 deletions lib/plausible/site/admin.ex
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,23 @@ defmodule Plausible.SiteAdmin do
]
end

def custom_index_query(_conn, _schema, query) do
from(r in query,
inner_join: o in assoc(r, :owner),
preload: [owner: o, memberships: :user]
)
def custom_index_query(conn, _schema, query) do
query =
from(r in query,
inner_join: o in assoc(r, :owner),
as: :owner,
preload: [owner: o, memberships: :user]
)

case String.trim(conn.params["search"] || "") do
"owner:" <> email when is_binary(email) and email != "" ->
query
|> exclude(:where)
|> where([owner: o], like(o.email, ^email))

_ ->
query
end
end

def before_update(_conn, changeset) do
Expand Down
10 changes: 8 additions & 2 deletions test/plausible/help_scout_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -59,12 +59,17 @@ defmodule Plausible.HelpScoutTest do

crm_url = "#{PlausibleWeb.Endpoint.url()}/crm/auth/user/#{user_id}"

owned_sites_url =
"#{PlausibleWeb.Endpoint.url()}/crm/sites/site?search=#{URI.encode_www_form("owner:#{email}")}"

assert {:ok,
%{
status_link: ^crm_url,
status_label: "Trial",
plan_link: "#",
plan_label: "None"
plan_label: "None",
sites_count: 0,
sites_link: ^owned_sites_url
}} = HelpScout.get_customer_details("500")
end

Expand Down Expand Up @@ -270,7 +275,8 @@ defmodule Plausible.HelpScoutTest do
status_link: _,
status_label: "Dashboard locked",
plan_link: _,
plan_label: "10k Plan (€10 monthly)"
plan_label: "10k Plan (€10 monthly)",
sites_count: 1
}} = HelpScout.get_customer_details("500")
end

Expand Down

0 comments on commit 094274b

Please sign in to comment.