PluginProbe
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder / 2.0
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder v2.0
V3.3.2 3.3.1 V-3.3.0 3.2.2 3.2.1 3.2.0 3.1.4 3.1.3 3.1.2 3.1.1 3.1.0 V3.0.3 V3.0.2 -3.0.1 V_3.0.0 1.1.1 1.1.8 1.2 1.3 1.4 1.4.18 1.5.2 1.9 2.0 2.10.0 All 139 releases
bit-form / includes / Core / Integration / ZohoCRM / MetaDataApiHelper.php

MetaDataApiHelper.php in Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder 2.0, at includes/Core/Integration/ZohoCRM/MetaDataApiHelper.php

111 lines 3.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Zoho CRM Meta Data Api Helper
4 *
5 */
6
7 namespace BitCode\BitForm\Core\Integration\ZohoCRM;
8
9 use BitCode\BitForm\Core\Util\HttpHelper;
10
11 /**
12 * Provide functionality for Tags in Zoho CRM
13 */
14 final class MetaDataApiHelper {
15 private $_defaultHeader;
16 private $_apiDomain;
17 private $_module;
18
19 /**
20 * Constructor function
21 *
22 * @param Object $tokenDetails Api token details
23 */
24 public function __construct($tokenDetails, $minorV = false) {
25 $this->_defaultHeader['Authorization'] = "Zoho-oauthtoken {$tokenDetails->access_token}";
26 $this->_apiDomain = $minorV ?
27 urldecode($tokenDetails->api_domain) . '/crm/v2.1/settings'
28 : urldecode($tokenDetails->api_domain) . '/crm/v2/settings';
29 }
30
31 /**
32 * Helps to get Assignment rules of a Zoho CRM module
33 *
34 * @param $module Name of the module for which Assignment rules needs to retrive
35 *
36 * @return Array $relatedLists Assignment rules
37 */
38 public function getAssignmentRules($module) {
39 $getAssignmentRulesEndpoint = "{$this->_apiDomain}/automation/assignment_rules";
40 $getAssignmentRulesResponse = HttpHelper::get($getAssignmentRulesEndpoint, ['module' => $module], $this->_defaultHeader);
41 if (is_wp_error($getAssignmentRulesResponse)) {
42 return $getAssignmentRulesResponse;
43 }
44 $assignment_rules = [];
45 if (!empty($getAssignmentRulesResponse->assignment_rules)) {
46 foreach ($getAssignmentRulesResponse->assignment_rules as $rulesDetails) {
47 $assignment_rules[$rulesDetails->name] = $rulesDetails->id;
48 }
49 } else {
50 return $getAssignmentRulesResponse;
51 }
52 return $assignment_rules;
53 }
54
55 /**
56 * Helps to get Related Lists of a Zoho CRM module
57 *
58 * @param $module Name of the module for which related lists needs to retrive
59 *
60 * @return Array $relatedLists Related Lists
61 */
62 public function getRelatedLists($module) {
63 $getRelatedListsEndpoint = "{$this->_apiDomain}/related_lists";
64 $getRelatedListsResponse = HttpHelper::get($getRelatedListsEndpoint, ['module' => $module], $this->_defaultHeader);
65 if (is_wp_error($getRelatedListsResponse)) {
66 return $getRelatedListsResponse;
67 }
68
69 $related_lists = null;
70 if ('Tasks' !== $module || 'Events' !== $module || 'Calls' !== $module) {
71 $related_lists = [
72 'Tasks' => (object) [
73 'name' => 'Tasks',
74 'api_name' => 'Tasks',
75 'href' => null,
76 'module' => 'Tasks',
77 ],
78 'Events' => (object) [
79 'name' => 'Events',
80 'api_name' => 'Events',
81 'href' => null,
82 'module' => 'Events',
83 ],
84 'Calls' => (object) [
85 'name' => 'Calls',
86 'api_name' => 'Calls',
87 'href' => null,
88 'module' => 'Calls',
89 ],
90 ];
91 }
92
93 $relatedModuleToRemove = ['Attachments', 'Products', 'Activities', 'Activities_History', 'Emails', 'Invited_Events', 'Campaigns', 'Social', 'CheckLists', 'Zoho_Survey', 'Visits_Zoho_Livedesk', 'ZohoSign_Documents', 'Lead_Quote', 'Zoho_ShowTime'];
94 if (!empty($getRelatedListsResponse->related_lists)) {
95 foreach ($getRelatedListsResponse->related_lists as $relatedListsDetails) {
96 if (!in_array($relatedListsDetails->api_name, $relatedModuleToRemove)) {
97 $related_lists[$relatedListsDetails->api_name] = (object) [
98 'name' => $relatedListsDetails->name,
99 'api_name' => $relatedListsDetails->api_name,
100 'href' => $relatedListsDetails->href,
101 'module' => $relatedListsDetails->module,
102 ];
103 }
104 }
105 } else {
106 return $getRelatedListsResponse;
107 }
108 return $related_lists;
109 }
110 }
111