diff --git a/src/Mailgun/Mailgun.php b/src/Mailgun/Mailgun.php index fc9224b..5dea5ad 100644 --- a/src/Mailgun/Mailgun.php +++ b/src/Mailgun/Mailgun.php @@ -2,36 +2,53 @@ namespace Mailgun; -require_once 'Constants/Constants.php'; - -use Mailgun\Messages\Messages; +use Mailgun\Constants\ExceptionMessages; use Mailgun\Messages\Exceptions; use Mailgun\Connection\RestClient; use Mailgun\Messages\BatchMessage; use Mailgun\Lists\OptInHandler; use Mailgun\Messages\MessageBuilder; -/* - This class is the base class for the Mailgun SDK. - See the official documentation for usage instructions. -*/ - +/** + * This class is the base class for the Mailgun SDK. + * See the official documentation (link below) for usage instructions. + * + * @link https://github.com/mailgun/mailgun-php/blob/master/README.md + */ class Mailgun{ - protected $workingDomain; + + /** + * @var RestClient + */ protected $restClient; + + /** + * @var null|string + */ protected $apiKey; - + + /** + * @param string|null $apiKey + * @param string $apiEndpoint + * @param string $apiVersion + * @param bool $ssl + */ public function __construct($apiKey = null, $apiEndpoint = "api.mailgun.net", $apiVersion = "v2", $ssl = true){ $this->apiKey = $apiKey; $this->restClient = new RestClient($apiKey, $apiEndpoint, $apiVersion, $ssl); } + /** + * 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 + */ public function sendMessage($workingDomain, $postData, $postFiles = array()){ - /* - * 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. - */ if(is_array($postFiles)){ return $this->post("$workingDomain/messages", $postData, $postFiles); } @@ -47,21 +64,24 @@ class Mailgun{ return $result; } else{ - throw new Exceptions\MissingRequiredMIMEParameters(EXCEPTION_MISSING_REQUIRED_MIME_PARAMETERS); + 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 + */ public function verifyWebhookSignature($postData = NULL) { - /* - * 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. - */ if(is_null($postData)) { $postData = $_POST; } @@ -76,30 +96,61 @@ class Mailgun{ } } + /** + * @param string $endpointUrl + * @param array $postData + * @param array $files + * @return \stdClass + */ public function post($endpointUrl, $postData = array(), $files = array()){ return $this->restClient->post($endpointUrl, $postData, $files); } + /** + * @param string $endpointUrl + * @param array $queryString + * @return \stdClass + */ public function get($endpointUrl, $queryString = array()){ return $this->restClient->get($endpointUrl, $queryString); } + /** + * @param string $endpointUrl + * @return \stdClass + */ public function delete($endpointUrl){ return $this->restClient->delete($endpointUrl); } + /** + * @param string $endpointUrl + * @param array $putData + * @return \stdClass + */ public function put($endpointUrl, $putData){ return $this->restClient->put($endpointUrl, $putData); } + /** + * @return MessageBuilder + */ public function MessageBuilder(){ return new MessageBuilder(); } + /** + * @return OptInHandler + */ public function OptInHandler(){ return new OptInHandler(); } + /** + * @param string $workingDomain + * @param bool $autoSend + * @return BatchMessage + */ public function BatchMessage($workingDomain, $autoSend = true){ return new BatchMessage($this->restClient, $workingDomain, $autoSend); }