diff --git a/src/Endpoints/SSL.php b/src/Endpoints/SSL.php index fea524b..d1dea20 100644 --- a/src/Endpoints/SSL.php +++ b/src/Endpoints/SSL.php @@ -150,4 +150,27 @@ class SSL implements API } return false; } + + /** + * Update the SSL certificate pack validation method + * + * @param string $zoneID The ID of the zone + * @param string $certPackUUID The certificate pack UUID + * @param string $validationMethod The verification method + * @return bool + */ + public function updateSSLCertificatePackValidationMethod(string $zoneID, string $certPackUUID, string $validationMethod) + { + $return = $this->adapter->patch( + 'zones/' . $zoneID . '/ssl/verification/' . $certPackUUID, + [ + 'validation_method' => $validationMethod, + ] + ); + $body = json_decode($return->getBody()); + if (isset($body->success) && $body->success == true) { + return true; + } + return false; + } } diff --git a/tests/Endpoints/SSLTest.php b/tests/Endpoints/SSLTest.php index b29a97e..bfbaf66 100644 --- a/tests/Endpoints/SSLTest.php +++ b/tests/Endpoints/SSLTest.php @@ -138,4 +138,24 @@ class SSLTest extends TestCase $this->assertTrue($result); } + + public function testUpdateSSLCertificatePackValidationMethod() + { + $response = $this->getPsr7JsonResponseForFixture('Endpoints/updateSSLCertificatePackValidationMethod.json'); + + $mock = $this->getMockBuilder(\Cloudflare\API\Adapter\Adapter::class)->getMock(); + $mock->method('patch')->willReturn($response); + + $mock->expects($this->once()) + ->method('patch') + ->with( + $this->equalTo('zones/c2547eb745079dac9320b638f5e225cf483cc5cfdda41/ssl/verification/a77f8bd7-3b47-46b4-a6f1-75cf98109948'), + $this->equalTo(['validation_method' => 'cname']) + ); + + $sslMock = new \Cloudflare\API\Endpoints\SSL($mock); + $result = $sslMock->updateSSLCertificatePackValidationMethod('c2547eb745079dac9320b638f5e225cf483cc5cfdda41', 'a77f8bd7-3b47-46b4-a6f1-75cf98109948', 'cname'); + + $this->assertTrue($result); + } } diff --git a/tests/Fixtures/Endpoints/updateSSLCertificatePackValidationMethod.json b/tests/Fixtures/Endpoints/updateSSLCertificatePackValidationMethod.json new file mode 100644 index 0000000..878457d --- /dev/null +++ b/tests/Fixtures/Endpoints/updateSSLCertificatePackValidationMethod.json @@ -0,0 +1,6 @@ +{ + "success": true, + "errors": [], + "messages": [], + "result": "off" +} \ No newline at end of file