      1: <?php
      2:
      3: class Mandrill_Users {
      4:     public function __construct(Mandrill $master) {
      5:         $this->master = $master;
      6:     }
      7:
      8:     /**
      9:      * Return the information about the API-connected user
     10:      * @return struct the user information including username, key, reputation, quota, and historical sending stats
     11:      *     - username string the username of the user (used for SMTP authentication)
     12:      *     - created_at string the date and time that the user's Mandrill account was created as a UTC string in YYYY-MM-DD HH:MM:SS format
     13:      *     - public_id string a unique, permanent identifier for this user
     14:      *     - reputation integer the reputation of the user on a scale from 0 to 100, with 75 generally being a "good" reputation
     15:      *     - hourly_quota integer the maximum number of emails Mandrill will deliver for this user each hour.  Any emails beyond that will be accepted and queued for later delivery.  Users with higher reputations will have higher hourly quotas
     16:      *     - backlog integer the number of emails that are queued for delivery due to exceeding your monthly or hourly quotas
     17:      *     - stats struct an aggregate summary of the account's sending stats
     18:      *         - today struct stats for this user so far today
     19:      *             - sent integer the number of emails sent for this user so far today
     20:      *             - hard_bounces integer the number of emails hard bounced for this user so far today
     21:      *             - soft_bounces integer the number of emails soft bounced for this user so far today
     22:      *             - rejects integer the number of emails rejected for sending this user so far today
     23:      *             - complaints integer the number of spam complaints for this user so far today
     24:      *             - unsubs integer the number of unsubscribes for this user so far today
     25:      *             - opens integer the number of times emails have been opened for this user so far today
     26:      *             - unique_opens integer the number of unique opens for emails sent for this user so far today
     27:      *             - clicks integer the number of URLs that have been clicked for this user so far today
     28:      *             - unique_clicks integer the number of unique clicks for emails sent for this user so far today
     29:      *         - last_7_days struct stats for this user in the last 7 days
     30:      *             - sent integer the number of emails sent for this user in the last 7 days
     31:      *             - hard_bounces integer the number of emails hard bounced for this user in the last 7 days
     32:      *             - soft_bounces integer the number of emails soft bounced for this user in the last 7 days
     33:      *             - rejects integer the number of emails rejected for sending this user in the last 7 days
     34:      *             - complaints integer the number of spam complaints for this user in the last 7 days
     35:      *             - unsubs integer the number of unsubscribes for this user in the last 7 days
     36:      *             - opens integer the number of times emails have been opened for this user in the last 7 days
     37:      *             - unique_opens integer the number of unique opens for emails sent for this user in the last 7 days
     38:      *             - clicks integer the number of URLs that have been clicked for this user in the last 7 days
     39:      *             - unique_clicks integer the number of unique clicks for emails sent for this user in the last 7 days
     40:      *         - last_30_days struct stats for this user in the last 30 days
     41:      *             - sent integer the number of emails sent for this user in the last 30 days
     42:      *             - hard_bounces integer the number of emails hard bounced for this user in the last 30 days
     43:      *             - soft_bounces integer the number of emails soft bounced for this user in the last 30 days
     44:      *             - rejects integer the number of emails rejected for sending this user in the last 30 days
     45:      *             - complaints integer the number of spam complaints for this user in the last 30 days
     46:      *             - unsubs integer the number of unsubscribes for this user in the last 30 days
     47:      *             - opens integer the number of times emails have been opened for this user in the last 30 days
     48:      *             - unique_opens integer the number of unique opens for emails sent for this user in the last 30 days
     49:      *             - clicks integer the number of URLs that have been clicked for this user in the last 30 days
     50:      *             - unique_clicks integer the number of unique clicks for emails sent for this user in the last 30 days
     51:      *         - last_60_days struct stats for this user in the last 60 days
     52:      *             - sent integer the number of emails sent for this user in the last 60 days
     53:      *             - hard_bounces integer the number of emails hard bounced for this user in the last 60 days
     54:      *             - soft_bounces integer the number of emails soft bounced for this user in the last 60 days
     55:      *             - rejects integer the number of emails rejected for sending this user in the last 60 days
     56:      *             - complaints integer the number of spam complaints for this user in the last 60 days
     57:      *             - unsubs integer the number of unsubscribes for this user in the last 60 days
     58:      *             - opens integer the number of times emails have been opened for this user in the last 60 days
     59:      *             - unique_opens integer the number of unique opens for emails sent for this user in the last 60 days
     60:      *             - clicks integer the number of URLs that have been clicked for this user in the last 60 days
     61:      *             - unique_clicks integer the number of unique clicks for emails sent for this user in the last 60 days
     62:      *         - last_90_days struct stats for this user in the last 90 days
     63:      *             - sent integer the number of emails sent for this user in the last 90 days
     64:      *             - hard_bounces integer the number of emails hard bounced for this user in the last 90 days
     65:      *             - soft_bounces integer the number of emails soft bounced for this user in the last 90 days
     66:      *             - rejects integer the number of emails rejected for sending this user in the last 90 days
     67:      *             - complaints integer the number of spam complaints for this user in the last 90 days
     68:      *             - unsubs integer the number of unsubscribes for this user in the last 90 days
     69:      *             - opens integer the number of times emails have been opened for this user in the last 90 days
     70:      *             - unique_opens integer the number of unique opens for emails sent for this user in the last 90 days
     71:      *             - clicks integer the number of URLs that have been clicked for this user in the last 90 days
     72:      *             - unique_clicks integer the number of unique clicks for emails sent for this user in the last 90 days
     73:      *         - all_time struct stats for the lifetime of the user's account
     74:      *             - sent integer the number of emails sent in the lifetime of the user's account
     75:      *             - hard_bounces integer the number of emails hard bounced in the lifetime of the user's account
     76:      *             - soft_bounces integer the number of emails soft bounced in the lifetime of the user's account
     77:      *             - rejects integer the number of emails rejected for sending this user so far today
     78:      *             - complaints integer the number of spam complaints in the lifetime of the user's account
     79:      *             - unsubs integer the number of unsubscribes in the lifetime of the user's account
     80:      *             - opens integer the number of times emails have been opened in the lifetime of the user's account
     81:      *             - unique_opens integer the number of unique opens for emails sent in the lifetime of the user's account
     82:      *             - clicks integer the number of URLs that have been clicked in the lifetime of the user's account
     83:      *             - unique_clicks integer the number of unique clicks for emails sent in the lifetime of the user's account
     84:      */
     85:     public function info() {
     86:         $_params = array();
     87:         return $this->master->call('users/info', $_params);
     88:     }
     89:
     90:     /**
     91:      * Validate an API key and respond to a ping
     92:      * @return string the string "PONG!"
     93:      */
     94:     public function ping() {
     95:         $_params = array();
     96:         return $this->master->call('users/ping', $_params);
     97:     }
     98:
     99:     /**
    100:      * Validate an API key and respond to a ping (anal JSON parser version)
    101:      * @return struct a struct with one key "PING" with a static value "PONG!"
    102:      */
    103:     public function ping2() {
    104:         $_params = array();
    105:         return $this->master->call('users/ping2', $_params);
    106:     }
    107:
    108:     /**
    109:      * Return the senders that have tried to use this account, both verified and unverified
    110:      * @return array an array of sender data, one for each sending addresses used by the account
    111:      *     - return[] struct the information on each sending address in the account
    112:      *         - address string the sender's email address
    113:      *         - created_at string the date and time that the sender was first seen by Mandrill as a UTC date string in YYYY-MM-DD HH:MM:SS format
    114:      *         - sent integer the total number of messages sent by this sender
    115:      *         - hard_bounces integer the total number of hard bounces by messages by this sender
    116:      *         - soft_bounces integer the total number of soft bounces by messages by this sender
    117:      *         - rejects integer the total number of rejected messages by this sender
    118:      *         - complaints integer the total number of spam complaints received for messages by this sender
    119:      *         - unsubs integer the total number of unsubscribe requests received for messages by this sender
    120:      *         - opens integer the total number of times messages by this sender have been opened
    121:      *         - clicks integer the total number of times tracked URLs in messages by this sender have been clicked
    122:      *         - unique_opens integer the number of unique opens for emails sent for this sender
    123:      *         - unique_clicks integer the number of unique clicks for emails sent for this sender
    124:      */
    125:     public function senders() {
    126:         $_params = array();
    127:         return $this->master->call('users/senders', $_params);
    128:     }
    129:
    130: }
    131:
    132:
    133: