From c1421fec283081281190db04e202c69dc5715cff Mon Sep 17 00:00:00 2001 From: Oleksandr Mykhailenko Date: Wed, 25 Mar 2026 22:10:17 +0200 Subject: [PATCH] Added updated list of dimensions --- src/Api/Metrics.php | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/Api/Metrics.php b/src/Api/Metrics.php index ca1f27bc..1c567e1e 100644 --- a/src/Api/Metrics.php +++ b/src/Api/Metrics.php @@ -21,6 +21,27 @@ */ class Metrics extends HttpApi { + /** + * Valid dimensions for metrics queries + * @see https://documentation.mailgun.com/docs/mailgun/user-manual/reporting/dimensions + */ + private const VALID_DIMENSIONS = [ + 'bot', + 'country', + 'time', + 'domain', + 'ip', + 'ip_pool', + 'recipient_domain', + 'recipient_provider', + 'tag', + 'subaccount', + 'device', + 'browser', + 'os', + 'mailbox_provider', + ]; + /** * Query metrics for the total account. * @@ -58,9 +79,8 @@ public function loadMetrics(array $payload = [], array $requestHeaders = []): Me // Validate dimensions (must be an array and contain only valid values) if (isset($payload['dimensions'])) { Assert::isArray($payload['dimensions'], 'Dimensions must be an array'); - $validDimensions = ['time', 'domain', 'ip', 'ip_pool', 'recipient_domain', 'tag', 'country', 'subaccount']; foreach ($payload['dimensions'] as $dimension) { - Assert::oneOf($dimension, $validDimensions, "Invalid dimension: $dimension"); + Assert::oneOf($dimension, self::VALID_DIMENSIONS, "Invalid dimension: $dimension"); } }