1 <?php
2 namespace MailChimp\Campaigns;
3
4 use MailChimp\MailChimp as MailChimp;
5
6 class Feedback extends MailChimp
7 {
8
9 /**
10 * Get feedback about a campaign
11 *
12 * array["fields"] array list of strings of response fields to return
13 * array["exclude_fields"] array list of strings of response fields to exclude (not to be used with "fields")
14 *
15 * @param string $campaign_id for the campaign instance
16 * @param array $query (See Above) OPTIONAL associative array of query parameters.
17 * @return object
18 */
19 public function getFeedback($campaign_id, array $query = [])
20 {
21 return self::execute("GET", "campaigns/{$campaign_id}/feedback", $query);
22 }
23
24 /**
25 * Get a specific feedback message
26 *
27 * array["fields"] array list of strings of response fields to return
28 * array["exclude_fields"] array list of strings of response fields to exclude (not to be used with "fields")
29 *
30 * @param string $campaign_id for the campaign instance
31 * @param string $feedback_id
32 * @param array $query (See Above) OPTIONAL associative array of query parameters.
33 * @return object
34 */
35 public function getFeedbackMessage($campaign_id, $feedback_id, array $query = [])
36 {
37 return self::execute("GET", "campaigns/{$campaign_id}/feedback/{$feedback_id}", $query);
38 }
39
40 /**
41 * Update a campaign feedback message
42 * *
43 * @param string $campaign_id for the campaign instance
44 * @param string $feedback_id
45 * @param array $data
46 * @return object
47 */
48 public function createFeedbackMessage($campaign_id, $feedback_id, $message, array $optional_settings = null)
49 {
50 $optional_fields = ["block_id", "is_complete"];
51 $data = ["message" => $message];
52
53 // If the optional fields are passed, process them against the list of optional fields.
54 if (isset($optional_settings)) {
55 $data = array_merge($data, self::optionalFields($optional_fields, $optional_settings));
56 }
57
58 return self::execute("PATCH", "campaigns/{$campaign_id}/feedback/{$feedback_id}", $data);
59 }
60
61 /**
62 * Update a campaign feedback message
63 * *
64 * @param string $campaign_id for the campaign instance
65 * @param string $feedback_id
66 * @param array $data
67 * @return object
68 */
69 public function updateFeedbackMessage($campaign_id, $feedback_id, array $data = [])
70 {
71 return self::execute("PATCH", "campaigns/{$campaign_id}/feedback/{$feedback_id}", $data);
72 }
73
74 /**
75 * Delete a campaign feedback message
76 *
77 * @param string $campaign_id for the campaign instance
78 * @param string $feedback_id
79 */
80 public function deleteFeedbackMessage($campaign_id, $feedback_id)
81 {
82 return self::execute("DELETE", "campaigns/{$campaign_id}/feedback/{$feedback_id}");
83 }
84
85
86 }
87