diff --git a/src/Api/Suppression/Bounce.php b/src/Api/Suppression/Bounce.php index 11c82a09..a217886b 100644 --- a/src/Api/Suppression/Bounce.php +++ b/src/Api/Suppression/Bounce.php @@ -14,11 +14,14 @@ use Mailgun\Api\HttpApi; use Mailgun\Api\Pagination; use Mailgun\Assert; +use Mailgun\Exception\InvalidArgumentException; use Mailgun\Model\Suppression\Bounce\CreateResponse; use Mailgun\Model\Suppression\Bounce\DeleteResponse; use Mailgun\Model\Suppression\Bounce\IndexResponse; use Mailgun\Model\Suppression\Bounce\ShowResponse; use Psr\Http\Client\ClientExceptionInterface; +use RuntimeException; +use Throwable; /** * @see https://documentation.mailgun.com/en/latest/api-suppressions.html#bounces @@ -117,4 +120,25 @@ public function deleteAll(string $domain, array $requestHeaders = []): ?DeleteRe return $this->hydrateResponse($response, DeleteResponse::class); } + + /** + * @param string $domainId + * @param array $bounces + * @param array $requestHeaders + * @return mixed + */ + public function importBouncesList(string $domainId, array $bounces, array $requestHeaders = []) + { + try { + $response = $this->httpPostRaw( + sprintf('/v3/%s/bounces/import', $domainId), + $bounces, + $requestHeaders + ); + } catch (Throwable $throwable) { + throw new RuntimeException($throwable->getMessage()); + } + + return $this->hydrateResponse($response, CreateResponse::class); + } }