      1: <?php
      2:
      3: class Mandrill_Exports {
      4:     public function __construct(Mandrill $master) {
      5:         $this->master = $master;
      6:     }
      7:
      8:     /**
      9:      * Returns information about an export job. If the export job's state is 'complete',
     10: the returned data will include a URL you can use to fetch the results. Every export
     11: job produces a zip archive, but the format of the archive is distinct for each job
     12: type. The api calls that initiate exports include more details about the output format
     13: for that job type.
     14:      * @param string $id an export job identifier
     15:      * @return struct the information about the export
     16:      *     - id string the unique identifier for this Export. Use this identifier when checking the export job's status
     17:      *     - created_at string the date and time that the export job was created as a UTC string in YYYY-MM-DD HH:MM:SS format
     18:      *     - type string the type of the export job - activity, reject, or whitelist
     19:      *     - finished_at string the date and time that the export job was finished as a UTC string in YYYY-MM-DD HH:MM:SS format
     20:      *     - state string the export job's state - waiting, working, complete, error, or expired.
     21:      *     - result_url string the url for the export job's results, if the job is completed.
     22:      */
     23:     public function info($id) {
     24:         $_params = array("id" => $id);
     25:         return $this->master->call('exports/info', $_params);
     26:     }
     27:
     28:     /**
     29:      * Returns a list of your exports.
     30:      * @return array the account's exports
     31:      *     - return[] struct the individual export info
     32:      *         - id string the unique identifier for this Export. Use this identifier when checking the export job's status
     33:      *         - created_at string the date and time that the export job was created as a UTC string in YYYY-MM-DD HH:MM:SS format
     34:      *         - type string the type of the export job - activity, reject, or whitelist
     35:      *         - finished_at string the date and time that the export job was finished as a UTC string in YYYY-MM-DD HH:MM:SS format
     36:      *         - state string the export job's state - waiting, working, complete, error, or expired.
     37:      *         - result_url string the url for the export job's results, if the job is completed.
     38:      */
     39:     public function getList() {
     40:         $_params = array();
     41:         return $this->master->call('exports/list', $_params);
     42:     }
     43:
     44:     /**
     45:      * Begins an export of your rejection blacklist. The blacklist will be exported to a zip archive
     46: containing a single file named rejects.csv that includes the following fields: email,
     47: reason, detail, created_at, expires_at, last_event_at, expires_at.
     48:      * @param string $notify_email an optional email address to notify when the export job has finished.
     49:      * @return struct information about the rejects export job that was started
     50:      *     - id string the unique identifier for this Export. Use this identifier when checking the export job's status
     51:      *     - created_at string the date and time that the export job was created as a UTC string in YYYY-MM-DD HH:MM:SS format
     52:      *     - type string the type of the export job
     53:      *     - finished_at string the date and time that the export job was finished as a UTC string in YYYY-MM-DD HH:MM:SS format, or null for jobs that have not run
     54:      *     - state string the export job's state
     55:      *     - result_url string the url for the export job's results, if the job is complete
     56:      */
     57:     public function rejects($notify_email=null) {
     58:         $_params = array("notify_email" => $notify_email);
     59:         return $this->master->call('exports/rejects', $_params);
     60:     }
     61:
     62:     /**
     63:      * Begins an export of your rejection whitelist. The whitelist will be exported to a zip archive
     64: containing a single file named whitelist.csv that includes the following fields:
     65: email, detail, created_at.
     66:      * @param string $notify_email an optional email address to notify when the export job has finished.
     67:      * @return struct information about the whitelist export job that was started
     68:      *     - id string the unique identifier for this Export. Use this identifier when checking the export job's status
     69:      *     - created_at string the date and time that the export job was created as a UTC string in YYYY-MM-DD HH:MM:SS format
     70:      *     - type string the type of the export job
     71:      *     - finished_at string the date and time that the export job was finished as a UTC string in YYYY-MM-DD HH:MM:SS format, or null for jobs that have not run
     72:      *     - state string the export job's state
     73:      *     - result_url string the url for the export job's results, if the job is complete
     74:      */
     75:     public function whitelist($notify_email=null) {
     76:         $_params = array("notify_email" => $notify_email);
     77:         return $this->master->call('exports/whitelist', $_params);
     78:     }
     79:
     80:     /**
     81:      * Begins an export of your activity history. The activity will be exported to a zip archive
     82: containing a single file named activity.csv in the same format as you would be able to export
     83: from your account's activity view. It includes the following fields: Date, Email Address,
     84: Sender, Subject, Status, Tags, Opens, Clicks, Bounce Detail. If you have configured any custom
     85: metadata fields, they will be included in the exported data.
     86:      * @param string $notify_email an optional email address to notify when the export job has finished
     87:      * @param string $date_from start date as a UTC string in YYYY-MM-DD HH:MM:SS format
     88:      * @param string $date_to end date as a UTC string in YYYY-MM-DD HH:MM:SS format
     89:      * @param array $tags an array of tag names to narrow the export to; will match messages that contain ANY of the tags
     90:      *     - tags[] string a tag name
     91:      * @param array $senders an array of senders to narrow the export to
     92:      *     - senders[] string a sender address
     93:      * @param array $states an array of states to narrow the export to; messages with ANY of the states will be included
     94:      *     - states[] string a message state
     95:      * @param array $api_keys an array of api keys to narrow the export to; messsagse sent with ANY of the keys will be included
     96:      *     - api_keys[] string an API key associated with your account
     97:      * @return struct information about the activity export job that was started
     98:      *     - id string the unique identifier for this Export. Use this identifier when checking the export job's status
     99:      *     - created_at string the date and time that the export job was created as a UTC string in YYYY-MM-DD HH:MM:SS format
    100:      *     - type string the type of the export job
    101:      *     - finished_at string the date and time that the export job was finished as a UTC string in YYYY-MM-DD HH:MM:SS format, or null for jobs that have not run
    102:      *     - state string the export job's state
    103:      *     - result_url string the url for the export job's results, if the job is complete
    104:      */
    105:     public function activity($notify_email=null, $date_from=null, $date_to=null, $tags=null, $senders=null, $states=null, $api_keys=null) {
    106:         $_params = array("notify_email" => $notify_email, "date_from" => $date_from, "date_to" => $date_to, "tags" => $tags, "senders" => $senders, "states" => $states, "api_keys" => $api_keys);
    107:         return $this->master->call('exports/activity', $_params);
    108:     }
    109:
    110: }
    111:
    112:
    113: