PluginProbe
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder / 2.10.2
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder v2.10.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 2.10.1 All 138 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.10.2, at includes/Core/Integration/ZohoCRM/MetaDataApiHelper.php

114 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 {
16 private $_defaultHeader;
17 private $_apiDomain;
18 private $_module;
19
20 /**
21 * Constructor function
22 *
23 */
24 public function __construct($tokenDetails, $minorV = false)
25 {
26 $this->_defaultHeader['Authorization'] = "Zoho-oauthtoken {$tokenDetails->access_token}";
27 $this->_apiDomain = $minorV ?
28 urldecode($tokenDetails->api_domain) . '/crm/v2.1/settings'
29 : urldecode($tokenDetails->api_domain) . '/crm/v2/settings';
30 }
31
32 /**
33 * Helps to get Assignment rules of a Zoho CRM module
34 *
35 * @param $module Name of the module for which Assignment rules needs to retrive
36 *
37 * @return mixed $relatedLists Assignment rules
38 */
39 public function getAssignmentRules($module)
40 {
41 $getAssignmentRulesEndpoint = "{$this->_apiDomain}/automation/assignment_rules";
42 $getAssignmentRulesResponse = HttpHelper::get($getAssignmentRulesEndpoint, ['module' => $module], $this->_defaultHeader);
43 if (is_wp_error($getAssignmentRulesResponse)) {
44 return $getAssignmentRulesResponse;
45 }
46 $assignment_rules = [];
47 if (!empty($getAssignmentRulesResponse->assignment_rules)) {
48 foreach ($getAssignmentRulesResponse->assignment_rules as $rulesDetails) {
49 $assignment_rules[$rulesDetails->name] = $rulesDetails->id;
50 }
51 } else {
52 return $getAssignmentRulesResponse;
53 }
54 return $assignment_rules;
55 }
56
57 /**
58 * Helps to get Related Lists of a Zoho CRM module
59 *
60 * @param $module Name of the module for which related lists needs to retrieve
61 *
62 * @return mixed $relatedLists Related Lists
63 */
64 public function getRelatedLists($module)
65 {
66 $getRelatedListsEndpoint = "{$this->_apiDomain}/related_lists";
67 $getRelatedListsResponse = HttpHelper::get($getRelatedListsEndpoint, ['module' => $module], $this->_defaultHeader);
68 if (is_wp_error($getRelatedListsResponse)) {
69 return $getRelatedListsResponse;
70 }
71
72 $related_lists = null;
73 if ('Tasks' !== $module || 'Events' !== $module || 'Calls' !== $module) {
74 $related_lists = [
75 'Tasks' => (object) [
76 'name' => 'Tasks',
77 'api_name' => 'Tasks',
78 'href' => null,
79 'module' => 'Tasks',
80 ],
81 'Events' => (object) [
82 'name' => 'Events',
83 'api_name' => 'Events',
84 'href' => null,
85 'module' => 'Events',
86 ],
87 'Calls' => (object) [
88 'name' => 'Calls',
89 'api_name' => 'Calls',
90 'href' => null,
91 'module' => 'Calls',
92 ],
93 ];
94 }
95
96 $relatedModuleToRemove = ['Attachments', 'Products', 'Activities', 'Activities_History', 'Emails', 'Invited_Events', 'Campaigns', 'Social', 'CheckLists', 'Zoho_Survey', 'Visits_Zoho_Livedesk', 'ZohoSign_Documents', 'Lead_Quote', 'Zoho_ShowTime'];
97 if (!empty($getRelatedListsResponse->related_lists)) {
98 foreach ($getRelatedListsResponse->related_lists as $relatedListsDetails) {
99 if (!in_array($relatedListsDetails->api_name, $relatedModuleToRemove)) {
100 $related_lists[$relatedListsDetails->api_name] = (object) [
101 'name' => $relatedListsDetails->name,
102 'api_name' => $relatedListsDetails->api_name,
103 'href' => $relatedListsDetails->href,
104 'module' => $relatedListsDetails->module,
105 ];
106 }
107 }
108 } else {
109 return $getRelatedListsResponse;
110 }
111 return $related_lists;
112 }
113 }
114