1: <?php
 2: 
 3: class Mandrill_Metadata {
 4:     public function __construct(Mandrill $master) {
 5:         $this->master = $master;
 6:     }
 7: 
 8:     /**
 9:      * Get the list of custom metadata fields indexed for the account.
10:      * @return array the custom metadata fields for the account
11:      *     - return[] struct the individual custom metadata field info
12:      *         - name string the unique identifier of the metadata field to update
13:      *         - state string the current state of the metadata field, one of "active", "delete", or "index"
14:      *         - view_template string Mustache template to control how the metadata is rendered in your activity log
15:      */
16:     public function getList() {
17:         $_params = array();
18:         return $this->master->call('metadata/list', $_params);
19:     }
20: 
21:     /**
22:      * Add a new custom metadata field to be indexed for the account.
23:      * @param string $name a unique identifier for the metadata field
24:      * @param string $view_template optional Mustache template to control how the metadata is rendered in your activity log
25:      * @return struct the information saved about the new metadata field
26:      *     - name string the unique identifier of the metadata field to update
27:      *     - state string the current state of the metadata field, one of "active", "delete", or "index"
28:      *     - view_template string Mustache template to control how the metadata is rendered in your activity log
29:      */
30:     public function add($name, $view_template=null) {
31:         $_params = array("name" => $name, "view_template" => $view_template);
32:         return $this->master->call('metadata/add', $_params);
33:     }
34: 
35:     /**
36:      * Update an existing custom metadata field.
37:      * @param string $name the unique identifier of the metadata field to update
38:      * @param string $view_template optional Mustache template to control how the metadata is rendered in your activity log
39:      * @return struct the information for the updated metadata field
40:      *     - name string the unique identifier of the metadata field to update
41:      *     - state string the current state of the metadata field, one of "active", "delete", or "index"
42:      *     - view_template string Mustache template to control how the metadata is rendered in your activity log
43:      */
44:     public function update($name, $view_template) {
45:         $_params = array("name" => $name, "view_template" => $view_template);
46:         return $this->master->call('metadata/update', $_params);
47:     }
48: 
49:     /**
50:      * Delete an existing custom metadata field. Deletion isn't instataneous, and /metadata/list will continue to return the field until the asynchronous deletion process is complete.
51:      * @param string $name the unique identifier of the metadata field to update
52:      * @return struct the information for the deleted metadata field
53:      *     - name string the unique identifier of the metadata field to update
54:      *     - state string the current state of the metadata field, one of "active", "delete", or "index"
55:      *     - view_template string Mustache template to control how the metadata is rendered in your activity log
56:      */
57:     public function delete($name) {
58:         $_params = array("name" => $name);
59:         return $this->master->call('metadata/delete', $_params);
60:     }
61: 
62: }
63: 
64: 
65: