From 0436e26cafa0493c3148d9f7c13e81e15b9eb9ae Mon Sep 17 00:00:00 2001 From: Greg Coladarci Date: Mon, 11 Aug 2025 14:30:47 -0700 Subject: [PATCH] Default to NOT posting installs/uninstalls to slack --- lib/peek_app_sdk/metrics.ex | 7 +++++-- lib/peek_app_sdk/metrics/client.ex | 10 ++++++---- test/peek_app_sdk/metrics/client_test.exs | 4 ++-- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/lib/peek_app_sdk/metrics.ex b/lib/peek_app_sdk/metrics.ex index 73cc5e2..e7fc83f 100644 --- a/lib/peek_app_sdk/metrics.ex +++ b/lib/peek_app_sdk/metrics.ex @@ -3,8 +3,11 @@ defmodule PeekAppSDK.Metrics do This module provides functions for tracking metrics to Ahem. """ - defdelegate track_install(external_refid, name, is_test), to: PeekAppSDK.Metrics.Client - defdelegate track_uninstall(external_refid, name, is_test), to: PeekAppSDK.Metrics.Client + defdelegate track_install(external_refid, name, is_test, opts \\ []), + to: PeekAppSDK.Metrics.Client + + defdelegate track_uninstall(external_refid, name, is_test, opts \\ []), + to: PeekAppSDK.Metrics.Client @doc """ Tracks an event with the given event ID and payload. diff --git a/lib/peek_app_sdk/metrics/client.ex b/lib/peek_app_sdk/metrics/client.ex index 624cf66..4d83904 100644 --- a/lib/peek_app_sdk/metrics/client.ex +++ b/lib/peek_app_sdk/metrics/client.ex @@ -62,7 +62,8 @@ defmodule PeekAppSDK.Metrics.Client do {:ok, %{...}} """ - def track_install(external_refid, name, is_test) do + def track_install(external_refid, name, is_test, opts \\ []) do + post_message = if(Keyword.get(opts, :post_message, false), do: "#{name} installed") usage_display = if is_test, do: "New TEST App Installs", else: "New App Installs" do_post!(%{ @@ -71,7 +72,7 @@ defmodule PeekAppSDK.Metrics.Client do anonymousId: external_refid, usageDisplay: usage_display, usageDetails: name, - postMessage: "#{name} installed", + postMessage: post_message, customFields: base_custom_fields(name, external_refid, is_test) }) end @@ -91,7 +92,8 @@ defmodule PeekAppSDK.Metrics.Client do {:ok, %{...}} """ - def track_uninstall(external_refid, name, is_test) do + def track_uninstall(external_refid, name, is_test, opts \\ []) do + post_message = if(Keyword.get(opts, :post_message, false), do: "#{name} uninstalled") usage_display = if is_test, do: "New TEST App Uninstalls", else: "New App Uninstalls" do_post!(%{ @@ -100,7 +102,7 @@ defmodule PeekAppSDK.Metrics.Client do anonymousId: external_refid, usageDisplay: usage_display, usageDetails: name, - postMessage: "#{name} uninstalled", + postMessage: post_message, customFields: base_custom_fields(name, external_refid, is_test) }) end diff --git a/test/peek_app_sdk/metrics/client_test.exs b/test/peek_app_sdk/metrics/client_test.exs index 8051378..c90ba0b 100644 --- a/test/peek_app_sdk/metrics/client_test.exs +++ b/test/peek_app_sdk/metrics/client_test.exs @@ -102,7 +102,7 @@ defmodule PeekAppSDK.Metrics.ClientTest do {:ok, %Tesla.Env{status: 202}} end) - assert {:ok, _} = Client.track_install(external_refid, name, is_test) + assert {:ok, _} = Client.track_install(external_refid, name, is_test, post_message: true) end test "sends correct payload for test installation" do @@ -151,7 +151,7 @@ defmodule PeekAppSDK.Metrics.ClientTest do {:ok, %Tesla.Env{status: 202}} end) - assert {:ok, _} = Client.track_uninstall(external_refid, name, is_test) + assert {:ok, _} = Client.track_uninstall(external_refid, name, is_test, post_message: true) end test "sends correct payload for test uninstallation" do