diff --git a/telemetry/tracks/class-tracks-event-dto.php b/telemetry/tracks/class-tracks-event-dto.php index 4520abe7b1..b9af110237 100644 --- a/telemetry/tracks/class-tracks-event-dto.php +++ b/telemetry/tracks/class-tracks-event-dto.php @@ -10,10 +10,6 @@ namespace Automattic\VIP\Telemetry\Tracks; use AllowDynamicProperties; -use stdClass; -use WP_Error; -use Automattic\VIP\Support_User\User as Support_User; -use function Automattic\VIP\Logstash\log2logstash; /** * Class that holds necessary properties of Tracks events. @@ -37,9 +33,14 @@ class Tracks_Event_DTO { /** @var string */ public string $_via_ip; // phpcs:ignore PSR2.Classes.PropertyDeclaration.Underscore + /** @var string VIP environment */ public string $vipgo_env; - public int $vipgo_org; + /** @var int VIP organization ID (from VIP_ORG_ID) */ + public int $vip_org_id; + + /** @var int VIP environment ID (also referenced as VIP_GO_APP_ID) */ + public int $vip_env_id; public bool $is_vip_user = false; } diff --git a/telemetry/tracks/class-tracks-event.php b/telemetry/tracks/class-tracks-event.php index 8d49c93740..fc8d306494 100644 --- a/telemetry/tracks/class-tracks-event.php +++ b/telemetry/tracks/class-tracks-event.php @@ -161,11 +161,20 @@ protected function process_properties( } } + // Set VIP environment ID if it exists. + if ( defined( 'VIP_GO_APP_ID' ) ) { + // APP_ID is incorrectly named; it actually references the environment ID + $env_id = constant( 'VIP_GO_APP_ID' ); + if ( is_integer( $env_id ) && $env_id > 0 ) { + $event->vip_env_id = $env_id; + } + } + // Set VIP organization if it exists. if ( defined( 'VIP_ORG_ID' ) ) { $org_id = constant( 'VIP_ORG_ID' ); if ( is_integer( $org_id ) && $org_id > 0 ) { - $event->vipgo_org = $org_id; + $event->vip_org_id = $org_id; } } diff --git a/tests/telemetry/tracks/test-class-tracks-event.php b/tests/telemetry/tracks/test-class-tracks-event.php index 8d571745f3..a3b94a5943 100644 --- a/tests/telemetry/tracks/test-class-tracks-event.php +++ b/tests/telemetry/tracks/test-class-tracks-event.php @@ -17,6 +17,8 @@ class Tracks_Event_Test extends WP_UnitTestCase { protected const VIP_ORG_ID = 17; + protected const VIP_GO_APP_ID = 2000; + private WP_User $user; public function setUp(): void { @@ -40,6 +42,7 @@ public function test_should_create_event() { public function test_should_return_event_data() { Constant_Mocker::define( 'VIP_TELEMETRY_SALT', self::VIP_TELEMETRY_SALT ); Constant_Mocker::define( 'VIP_GO_APP_ENVIRONMENT', self::VIP_GO_APP_ENVIRONMENT ); + Constant_Mocker::define( 'VIP_GO_APP_ID', self::VIP_GO_APP_ID ); Constant_Mocker::define( 'VIP_ORG_ID', self::VIP_ORG_ID ); $event = new Tracks_Event( 'prefix_', 'test_event', [ @@ -60,7 +63,8 @@ public function test_should_return_event_data() { $this->assertSame( hash_hmac( 'sha256', $this->user->user_email, self::VIP_TELEMETRY_SALT ), $event->get_data()->_ui ); $this->assertSame( 'vip:user_email', $event->get_data()->_ut ); $this->assertSame( self::VIP_GO_APP_ENVIRONMENT, $event->get_data()->vipgo_env ); - $this->assertSame( self::VIP_ORG_ID, $event->get_data()->vipgo_org ); + $this->assertSame( self::VIP_GO_APP_ID, $event->get_data()->vip_env_id ); + $this->assertSame( self::VIP_ORG_ID, $event->get_data()->vip_org_id ); $this->assertFalse( $event->get_data()->is_vip_user ); $this->assertTrue( $event->is_recordable() ); }