1: <?php
2: namespace Ctct\Services;
3:
4: use Ctct\Util\RestClient;
5: use Ctct\Util\Config;
6: use Ctct\Components\EmailMarketing\Schedule;
7: use Ctct\Components\EmailMarketing\TestSend;
8: use Ctct\Components\Activities\Activity;
9: use Ctct\Components\Activities\AddContacts;
10: use Ctct\Components\Activities\RemoveFromLists;
11: use Ctct\Components\Activities\ExportContacts;
12: use Ctct\Components\Activities\ClearLists;
13:
14: 15: 16: 17: 18: 19:
20: class ActivityService extends BaseService
21: {
22: 23: 24: 25: 26:
27: public function getActivities($accessToken)
28: {
29: $baseUrl = Config::get('endpoints.base_url') . Config::get('endpoints.activities');
30: $url = $this->buildUrl($baseUrl);
31: $response = parent::getRestClient()->get($url, parent::getHeaders($accessToken));
32: $jsonResponse = json_decode($response->body, true);
33: $activities = array();
34:
35: foreach ($jsonResponse as $activity) {
36: $activities[] = Activity::create($activity);
37: }
38: return $activities;
39: }
40:
41: 42: 43: 44: 45: 46:
47: public function getActivity($accessToken, $activityId)
48: {
49: $baseUrl = Config::get('endpoints.base_url') . sprintf(Config::get('endpoints.activity'), $activityId);
50: $url = $this->buildUrl($baseUrl);
51: $response = parent::getRestClient()->get($url, parent::getHeaders($accessToken));
52: return Activity::create(json_decode($response->body, true));
53: }
54:
55: 56: 57: 58: 59: 60:
61: public function createAddContactsActivity($accessToken, AddContacts $addContacts)
62: {
63: $baseUrl = Config::get('endpoints.base_url') . Config::get('endpoints.add_contacts_activity');
64: $url = $this->buildUrl($baseUrl);
65: $response = parent::getRestClient()->post($url, parent::getHeaders($accessToken), $addContacts->toJson());
66: return Activity::create(json_decode($response->body, true));
67: }
68:
69: 70: 71: 72: 73: 74:
75: public function addClearListsActivity($accessToken, Array $lists)
76: {
77: $baseUrl = Config::get('endpoints.base_url') . Config::get('endpoints.clear_lists_activity');
78: $url = $this->buildUrl($baseUrl);
79: $payload = array('lists' => $lists);
80: $response = parent::getRestClient()->post($url, parent::getHeaders($accessToken), json_encode($payload));
81: return Activity::create(json_decode($response->body, true));
82: }
83:
84: 85: 86: 87: 88: 89:
90: public function addExportContactsActivity($accessToken, ExportContacts $exportContacts)
91: {
92: $baseUrl = Config::get('endpoints.base_url') . Config::get('endpoints.export_contacts_activity');
93: $url = $this->buildUrl($baseUrl);
94: $response = parent::getRestClient()->post($url, parent::getHeaders($accessToken), json_encode($exportContacts));
95: return Activity::create(json_decode($response->body, true));
96: }
97:
98: 99: 100: 101: 102: 103:
104: public function addRemoveContactsFromListsActivity($accessToken, Array $emailAddresses, Array $lists)
105: {
106: $baseUrl = Config::get('endpoints.base_url') . Config::get('endpoints.remove_from_lists_activity');
107: $url = $this->buildUrl($baseUrl);
108: $payload = array(
109: 'import_data' => array(),
110: 'lists' => $lists
111: );
112:
113: foreach ($emailAddresses as $emailAddress) {
114: $payload['import_data'][] = array('email_addresses' => array($emailAddress));
115: }
116:
117: $response = parent::getRestClient()->post($url, parent::getHeaders($accessToken), json_encode($payload));
118: return Activity::create(json_decode($response->body, true));
119: }
120: }
121: