From c9bbf8e45fdb48225b94b990e8da75b1af8e9796 Mon Sep 17 00:00:00 2001 From: Nathan Perkins Date: Mon, 26 Aug 2019 10:19:07 -0600 Subject: [PATCH] Revise domain creation to allow select arguments Previously, passing `$spamAction` only worked if an SMTP password (`$smtpPass`) was provided. This revision de-couples those two arguments. In addition, it adds support for the `$wildcard` arguments (which appeared to not be used before). Finally, this revision adds SMTP password validation (the same used in the `credentials` method). --- src/Api/Domain.php | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/Api/Domain.php b/src/Api/Domain.php index f099645..0b14684 100644 --- a/src/Api/Domain.php +++ b/src/Api/Domain.php @@ -88,16 +88,26 @@ class Domain extends HttpApi $params['name'] = $domain; - // If at least smtpPass available, check for the fields spamAction wildcard if (!empty($smtpPass)) { - // TODO(sean.johnson): Extended spam filter input validation. - Assert::stringNotEmpty($spamAction); - Assert::boolean($wildcard); + Assert::stringNotEmpty($smtpPass); + Assert::lengthBetween($smtpPass, 5, 32, 'SMTP password must be between 5 and 32 characters.'); $params['smtp_password'] = $smtpPass; + } + + if (null !== $spamAction) { + // TODO(sean.johnson): Extended spam filter input validation. + Assert::stringNotEmpty($spamAction); + $params['spam_action'] = $spamAction; } + if (null !== $wildcard) { + Assert::boolean($wildcard); + + $params['wildcard'] = $wildcard ? 'true' : 'false'; + } + $response = $this->httpPost('/v3/domains', $params); return $this->hydrateResponse($response, CreateResponse::class);