* Added php docblocks to functions and member variables.

* Changed constants to use new constant classes.
* Changed class docblock to include link to readme file
* Moved function descriptions of sendMessage() and verifyWebhookSignature() methods to function docblocks
This commit is contained in:
Michael Crawford 2014-11-20 12:41:25 -06:00
parent 7fed60d881
commit 4924b597f4

View File

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