diff --git a/src/Mailgun/Mailgun.php b/src/Mailgun/Mailgun.php deleted file mode 100644 index cb61a47..0000000 --- a/src/Mailgun/Mailgun.php +++ /dev/null @@ -1,392 +0,0 @@ -apiKey = $apiKey; - $this->restClient = new RestClient($apiKey, $apiEndpoint, $httpClient); - - $this->httpClient = $httpClient; - $this->requestBuilder = $requestBuilder ?: new RequestBuilder(); - $this->hydrator = $hydrator ?: new ModelHydrator(); - } - - /** - * @param HttpClientConfigurator $configurator - * @param Hydrator|null $hydrator - * @param RequestBuilder|null $requestBuilder - * - * @return Mailgun - */ - public static function configure( - HttpClientConfigurator $configurator, - Hydrator $hydrator = null, - RequestBuilder $requestBuilder = null - ) { - $httpClient = $configurator->createConfiguredClient(); - - return new self($configurator->getApiKey(), $httpClient, 'api.mailgun.net', $hydrator, $requestBuilder); - } - - /** - * @param string $apiKey - * @param string $endpoint URL to mailgun servers - * - * @return Mailgun - */ - public static function create($apiKey, $endpoint = 'https://api.mailgun.net') - { - $httpClientConfigurator = (new HttpClientConfigurator()) - ->setApiKey($apiKey) - ->setEndpoint($endpoint); - - return self::configure($httpClientConfigurator); - } - - /** - * This function allows the sending of a fully formed message OR a custom - * MIME string. If sending MIME, the string must be passed in to the 3rd - * position of the function call. - * - * @param string $workingDomain - * @param array $postData - * @param array $postFiles - * - * @throws Exceptions\MissingRequiredMIMEParameters - * - * @return \stdClass - * - * @deprecated Use Mailgun->messages()->send() instead. Will be removed in 3.0 - */ - public function sendMessage($workingDomain, $postData, $postFiles = []) - { - if (is_array($postFiles)) { - return $this->post("$workingDomain/messages", $postData, $postFiles); - } elseif (is_string($postFiles)) { - $tempFile = tempnam(sys_get_temp_dir(), 'MG_TMP_MIME'); - $fileHandle = fopen($tempFile, 'w'); - fwrite($fileHandle, $postFiles); - - $result = $this->post("$workingDomain/messages.mime", $postData, ['message' => $tempFile]); - fclose($fileHandle); - unlink($tempFile); - - return $result; - } else { - throw new Exceptions\MissingRequiredMIMEParameters(ExceptionMessages::EXCEPTION_MISSING_REQUIRED_MIME_PARAMETERS); - } - } - - /** - * This function checks the signature in a POST request to see if it is - * authentic. - * - * Pass an array of parameters. If you pass nothing, $_POST will be - * used instead. - * - * If this function returns FALSE, you must not process the request. - * You should reject the request with status code 403 Forbidden. - * - * @param array|null $postData - * - * @return bool - * - * @deprecated Use Mailgun->webhook() instead. Will be removed in 3.0 - */ - public function verifyWebhookSignature($postData = null) - { - if (null === $postData) { - $postData = $_POST; - } - if (!isset($postData['timestamp']) || !isset($postData['token']) || !isset($postData['signature'])) { - return false; - } - $hmac = hash_hmac('sha256', "{$postData['timestamp']}{$postData['token']}", $this->apiKey); - $sig = $postData['signature']; - if (function_exists('hash_equals')) { - // hash_equals is constant time, but will not be introduced until PHP 5.6 - return hash_equals($hmac, $sig); - } else { - return $hmac === $sig; - } - } - - /** - * @return ResponseInterface|null - */ - public function getLastResponse() - { - return $this->responseHistory->getLastResponse(); - } - - /** - * @param string $endpointUrl - * @param array $postData - * @param array $files - * - * @return \stdClass - * - * @deprecated Will be removed in 3.0 - */ - public function post($endpointUrl, $postData = [], $files = []) - { - return $this->restClient->post($endpointUrl, $postData, $files); - } - - /** - * @param string $endpointUrl - * @param array $queryString - * - * @return \stdClass - * - * @deprecated Will be removed in 3.0 - */ - public function get($endpointUrl, $queryString = []) - { - return $this->restClient->get($endpointUrl, $queryString); - } - - /** - * @param string $url - * - * @return \stdClass - * - * @deprecated Will be removed in 3.0 - */ - public function getAttachment($url) - { - return $this->restClient->getAttachment($url); - } - - /** - * @param string $endpointUrl - * - * @return \stdClass - * - * @deprecated Will be removed in 3.0 - */ - public function delete($endpointUrl) - { - return $this->restClient->delete($endpointUrl); - } - - /** - * @param string $endpointUrl - * @param array $putData - * - * @return \stdClass - * - * @deprecated Will be removed in 3.0 - */ - public function put($endpointUrl, $putData) - { - return $this->restClient->put($endpointUrl, $putData); - } - - /** - * @param string $apiVersion - * - * @return Mailgun - * - * @deprecated Will be removed in 3.0 - */ - public function setApiVersion($apiVersion) - { - $this->restClient->setApiVersion($apiVersion); - - return $this; - } - - /** - * @param bool $sslEnabled - * - * @return Mailgun - * - * @deprecated This will be removed in 3.0. Mailgun does not support non-secure connections to their API. - */ - public function setSslEnabled($sslEnabled) - { - $this->restClient->setSslEnabled($sslEnabled); - - return $this; - } - - /** - * @return MessageBuilder - * - * @deprecated Will be removed in 3.0. - */ - public function MessageBuilder() - { - return new MessageBuilder(); - } - - /** - * @return OptInHandler - * - * @deprecated Will be removed in 3.0 - */ - public function OptInHandler() - { - return new OptInHandler(); - } - - /** - * @param string $workingDomain - * @param bool $autoSend - * - * @return BatchMessage - * - * @deprecated Will be removed in 3.0. Use Mailgun::messages()::getBatchMessage(). - */ - public function BatchMessage($workingDomain, $autoSend = true) - { - return new BatchMessage($this->restClient, $workingDomain, $autoSend); - } - - /** - * @return Api\Domain - */ - public function domains() - { - return new Api\Domain($this->httpClient, $this->requestBuilder, $this->hydrator); - } - - /** - * @return Api\EmailValidation - */ - public function emailValidation() - { - return new Api\EmailValidation($this->httpClient, $this->requestBuilder, $this->hydrator); - } - - /** - * @return Api\Event - */ - public function events() - { - return new Api\Event($this->httpClient, $this->requestBuilder, $this->hydrator); - } - - /** - * @return Api\Message - */ - public function messages() - { - return new Api\Message($this->httpClient, $this->requestBuilder, $this->hydrator); - } - - /** - * @return Api\Route - */ - public function routes() - { - return new Api\Route($this->httpClient, $this->requestBuilder, $this->hydrator); - } - - /** - * @return Api\Stats - */ - public function stats() - { - return new Api\Stats($this->httpClient, $this->requestBuilder, $this->hydrator); - } - - /** - * @return Api\Suppression - */ - public function suppressions() - { - return new Api\Suppression($this->httpClient, $this->requestBuilder, $this->hydrator); - } - - /** - * @return Api\Tag - */ - public function tags() - { - return new Api\Tag($this->httpClient, $this->requestBuilder, $this->hydrator); - } - - /** - * @return Api\Webhook - */ - public function webhooks() - { - return new Api\Webhook($this->httpClient, $this->requestBuilder, $this->hydrator, $this->apiKey); - } -}