PluginProbe
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder / 3.3.1
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder v3.3.1
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 3.3.1, at includes/Core/Integration/ZohoCRM/MetaDataApiHelper.php

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