Phaxio/vendor/phaxio/phaxio/lib/Phaxio/Fax.php
d6c2a24e
 <?php
 
 namespace Phaxio;
 
 class Fax extends AbstractResource
 {
     public static function create($phaxio, $params) {
         $fax = new self($phaxio);
         return $fax->_create($params);
     }
 
     public static function init($phaxio, $id) {
         return new self($phaxio, array('id' => $id));
     }
 
     private function _create($params) {
         if (isset($this->id)) throw new Exception("Fax #{$this->id} already created");
 
         $result = $this->phaxio->doRequest('POST', 'faxes', $params);
         $this->id = $result->getData()['id'];
 
         return $this;
     }
 
     public function retrieve() {
         if (!isset($this->id)) throw new Exception("Must set ID before getting fax");
 
         $result = $this->phaxio->doRequest("GET", 'faxes/' . urlencode($this->id));
         $this->exchangeArray($result->getData());
 
         return $this;
     }
 
     public function cancel() {
         $result = $this->phaxio->doRequest("POST", 'faxes/' . urlencode($this->id) . "/cancel");
 
         return true;
     }
 
     public function resend($params = array()) {
         $result = $this->phaxio->doRequest("POST", 'faxes/' . urlencode($this->id) . "/resend", $params);
 
         return self::init($this->phaxio, $result->getData()['id']);
     }
 
     public function delete() {
         $result = $this->phaxio->doRequest("DELETE", 'faxes/' . urlencode($this->id));
 
         return true;
     }
 
     public function getFile($params = array()) {
         return new Fax\File($this->phaxio, $this->id, $params);
     }
 }