ZCRMSDK 3.0.0.beta → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/src/ZCRMSDK.rb +3 -1
- data/src/com/zoho/api/authenticator/oauth_token.rb +1 -2
- data/src/com/zoho/api/authenticator/store/db_store.rb +27 -5
- data/src/com/zoho/api/authenticator/store/file_store.rb +26 -4
- data/src/com/zoho/crm/api/attachments/attachment.rb +38 -0
- data/src/com/zoho/crm/api/blue_print/field.rb +24 -4
- data/src/com/zoho/crm/api/fields/field.rb +23 -23
- data/src/com/zoho/crm/api/fields/multi_module_lookup.rb +99 -0
- data/src/com/zoho/crm/api/initializer.rb +4 -1
- data/src/com/zoho/crm/api/notes/note.rb +19 -0
- data/src/com/zoho/crm/api/org/hierarchy_preference.rb +61 -0
- data/src/com/zoho/crm/api/org/org.rb +38 -0
- data/src/com/zoho/crm/api/profiles/category.rb +19 -0
- data/src/com/zoho/crm/api/profiles/profile.rb +0 -19
- data/src/com/zoho/crm/api/record/field.rb +16 -17
- data/src/com/zoho/crm/api/record/line_tax.rb +19 -0
- data/src/com/zoho/crm/api/users/user.rb +34 -0
- data/src/com/zoho/crm/api/util/api_http_connector.rb +1 -1
- data/src/com/zoho/crm/api/util/common_api_handler.rb +5 -3
- data/src/com/zoho/crm/api/util/constants.rb +9 -11
- data/src/com/zoho/crm/api/util/converter.rb +11 -5
- data/src/com/zoho/crm/api/util/data_type_converter.rb +8 -2
- data/src/com/zoho/crm/api/util/form_data_converter.rb +1 -1
- data/src/com/zoho/crm/api/util/json_converter.rb +7 -9
- data/src/com/zoho/crm/api/util/module_fields_handler.rb +1 -1
- data/src/com/zoho/crm/api/util/utility.rb +81 -50
- data/src/com/zoho/crm/api/wizards/button.rb +38 -0
- data/src/com/zoho/crm/api/wizards/transition.rb +80 -0
- data/src/resources/JSONDetails.json +1 -1
- data/src/version.rb +1 -1
- metadata +9 -7
- data/src/com/zoho/crm/api/record/inventory_line_items.rb +0 -252
@@ -116,7 +116,10 @@ class Initializer
|
|
116
116
|
end
|
117
117
|
|
118
118
|
def self.get_JSONDetails
|
119
|
-
|
119
|
+
if @@json_details.nil? || @@json_details.length == 0
|
120
|
+
return JSON.parse(File.open(File.join(File.dirname(File.expand_path(__FILE__)), '../../../../' + Constants::JSON_DETAILS_FILE_PATH)).read)
|
121
|
+
end
|
122
|
+
@@json_details
|
120
123
|
rescue StandardError => e
|
121
124
|
raise SDKException.new(nil, Constants::EXCEPTION_JSONDETAILS, nil, e)
|
122
125
|
end
|
@@ -15,6 +15,7 @@ module Notes
|
|
15
15
|
@created_time = nil
|
16
16
|
@parent_id = nil
|
17
17
|
@editable = nil
|
18
|
+
@sharing_permission = nil
|
18
19
|
@se_module = nil
|
19
20
|
@is_shared_to_client = nil
|
20
21
|
@modified_by = nil
|
@@ -136,6 +137,24 @@ module Notes
|
|
136
137
|
@key_modified['$editable'] = 1
|
137
138
|
end
|
138
139
|
|
140
|
+
# The method to get the sharing_permission
|
141
|
+
# @return A String value
|
142
|
+
|
143
|
+
def sharing_permission
|
144
|
+
@sharing_permission
|
145
|
+
end
|
146
|
+
|
147
|
+
# The method to set the value to sharing_permission
|
148
|
+
# @param sharing_permission [String] A String
|
149
|
+
|
150
|
+
def sharing_permission=(sharing_permission)
|
151
|
+
if sharing_permission!=nil and !sharing_permission.is_a? String
|
152
|
+
raise SDKException.new(Constants::DATA_TYPE_ERROR, 'KEY: sharing_permission EXPECTED TYPE: String', nil, nil)
|
153
|
+
end
|
154
|
+
@sharing_permission = sharing_permission
|
155
|
+
@key_modified['$sharing_permission'] = 1
|
156
|
+
end
|
157
|
+
|
139
158
|
# The method to get the se_module
|
140
159
|
# @return A String value
|
141
160
|
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require_relative '../util/model'
|
2
|
+
|
3
|
+
module Org
|
4
|
+
class HierarchyPreference
|
5
|
+
include Util::Model
|
6
|
+
|
7
|
+
# Creates an instance of HierarchyPreference
|
8
|
+
def initialize
|
9
|
+
@type = nil
|
10
|
+
@key_modified = Hash.new
|
11
|
+
end
|
12
|
+
|
13
|
+
# The method to get the type
|
14
|
+
# @return A String value
|
15
|
+
|
16
|
+
def type
|
17
|
+
@type
|
18
|
+
end
|
19
|
+
|
20
|
+
# The method to set the value to type
|
21
|
+
# @param type [String] A String
|
22
|
+
|
23
|
+
def type=(type)
|
24
|
+
if type!=nil and !type.is_a? String
|
25
|
+
raise SDKException.new(Constants::DATA_TYPE_ERROR, 'KEY: type EXPECTED TYPE: String', nil, nil)
|
26
|
+
end
|
27
|
+
@type = type
|
28
|
+
@key_modified['type'] = 1
|
29
|
+
end
|
30
|
+
|
31
|
+
# The method to check if the user has modified the given key
|
32
|
+
# @param key [String] A String
|
33
|
+
# @return A Integer value
|
34
|
+
|
35
|
+
def is_key_modified(key)
|
36
|
+
if key!=nil and !key.is_a? String
|
37
|
+
raise SDKException.new(Constants::DATA_TYPE_ERROR, 'KEY: key EXPECTED TYPE: String', nil, nil)
|
38
|
+
end
|
39
|
+
if @key_modified.key?(key)
|
40
|
+
return @key_modified[key]
|
41
|
+
end
|
42
|
+
|
43
|
+
nil
|
44
|
+
end
|
45
|
+
|
46
|
+
# The method to mark the given key as modified
|
47
|
+
# @param key [String] A String
|
48
|
+
# @param modification [Integer] A Integer
|
49
|
+
|
50
|
+
def set_key_modified(key, modification)
|
51
|
+
if key!=nil and !key.is_a? String
|
52
|
+
raise SDKException.new(Constants::DATA_TYPE_ERROR, 'KEY: key EXPECTED TYPE: String', nil, nil)
|
53
|
+
end
|
54
|
+
if modification!=nil and !modification.is_a? Integer
|
55
|
+
raise SDKException.new(Constants::DATA_TYPE_ERROR, 'KEY: modification EXPECTED TYPE: Integer', nil, nil)
|
56
|
+
end
|
57
|
+
@key_modified[key] = modification
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
end
|
@@ -7,6 +7,7 @@ module Org
|
|
7
7
|
# Creates an instance of Org
|
8
8
|
def initialize
|
9
9
|
@country = nil
|
10
|
+
@hierarchy_preferences = nil
|
10
11
|
@photo_id = nil
|
11
12
|
@city = nil
|
12
13
|
@description = nil
|
@@ -36,6 +37,7 @@ module Org
|
|
36
37
|
@company_name = nil
|
37
38
|
@privacy_settings = nil
|
38
39
|
@primary_email = nil
|
40
|
+
@hipaa_compliance_enabled = nil
|
39
41
|
@iso_code = nil
|
40
42
|
@key_modified = Hash.new
|
41
43
|
end
|
@@ -58,6 +60,24 @@ module Org
|
|
58
60
|
@key_modified['country'] = 1
|
59
61
|
end
|
60
62
|
|
63
|
+
# The method to get the hierarchy_preferences
|
64
|
+
# @return An instance of HierarchyPreference
|
65
|
+
|
66
|
+
def hierarchy_preferences
|
67
|
+
@hierarchy_preferences
|
68
|
+
end
|
69
|
+
|
70
|
+
# The method to set the value to hierarchy_preferences
|
71
|
+
# @param hierarchy_preferences [HierarchyPreference] An instance of HierarchyPreference
|
72
|
+
|
73
|
+
def hierarchy_preferences=(hierarchy_preferences)
|
74
|
+
if hierarchy_preferences!=nil and !hierarchy_preferences.is_a? HierarchyPreference
|
75
|
+
raise SDKException.new(Constants::DATA_TYPE_ERROR, 'KEY: hierarchy_preferences EXPECTED TYPE: HierarchyPreference', nil, nil)
|
76
|
+
end
|
77
|
+
@hierarchy_preferences = hierarchy_preferences
|
78
|
+
@key_modified['hierarchy_preferences'] = 1
|
79
|
+
end
|
80
|
+
|
61
81
|
# The method to get the photo_id
|
62
82
|
# @return A String value
|
63
83
|
|
@@ -580,6 +600,24 @@ module Org
|
|
580
600
|
@key_modified['primary_email'] = 1
|
581
601
|
end
|
582
602
|
|
603
|
+
# The method to get the hipaa_compliance_enabled
|
604
|
+
# @return A Boolean value
|
605
|
+
|
606
|
+
def hipaa_compliance_enabled
|
607
|
+
@hipaa_compliance_enabled
|
608
|
+
end
|
609
|
+
|
610
|
+
# The method to set the value to hipaa_compliance_enabled
|
611
|
+
# @param hipaa_compliance_enabled [Boolean] A Boolean
|
612
|
+
|
613
|
+
def hipaa_compliance_enabled=(hipaa_compliance_enabled)
|
614
|
+
if hipaa_compliance_enabled!=nil and ! [true, false].include?hipaa_compliance_enabled
|
615
|
+
raise SDKException.new(Constants::DATA_TYPE_ERROR, 'KEY: hipaa_compliance_enabled EXPECTED TYPE: Boolean', nil, nil)
|
616
|
+
end
|
617
|
+
@hipaa_compliance_enabled = hipaa_compliance_enabled
|
618
|
+
@key_modified['hipaa_compliance_enabled'] = 1
|
619
|
+
end
|
620
|
+
|
583
621
|
# The method to get the iso_code
|
584
622
|
# @return A String value
|
585
623
|
|
@@ -9,6 +9,7 @@ module Profiles
|
|
9
9
|
@display_label = nil
|
10
10
|
@permissions_details = nil
|
11
11
|
@name = nil
|
12
|
+
@module_1 = nil
|
12
13
|
@key_modified = Hash.new
|
13
14
|
end
|
14
15
|
|
@@ -66,6 +67,24 @@ module Profiles
|
|
66
67
|
@key_modified['name'] = 1
|
67
68
|
end
|
68
69
|
|
70
|
+
# The method to get the module
|
71
|
+
# @return A String value
|
72
|
+
|
73
|
+
def module
|
74
|
+
@module_1
|
75
|
+
end
|
76
|
+
|
77
|
+
# The method to set the value to module
|
78
|
+
# @param module_1 [String] A String
|
79
|
+
|
80
|
+
def module=(module_1)
|
81
|
+
if module_1!=nil and !module_1.is_a? String
|
82
|
+
raise SDKException.new(Constants::DATA_TYPE_ERROR, 'KEY: module_1 EXPECTED TYPE: String', nil, nil)
|
83
|
+
end
|
84
|
+
@module_1 = module_1
|
85
|
+
@key_modified['module'] = 1
|
86
|
+
end
|
87
|
+
|
69
88
|
# The method to check if the user has modified the given key
|
70
89
|
# @param key [String] A String
|
71
90
|
# @return A Integer value
|
@@ -17,7 +17,6 @@ module Profiles
|
|
17
17
|
@default = nil
|
18
18
|
@description = nil
|
19
19
|
@id = nil
|
20
|
-
@category = nil
|
21
20
|
@custom = nil
|
22
21
|
@created_by = nil
|
23
22
|
@sections = nil
|
@@ -206,24 +205,6 @@ module Profiles
|
|
206
205
|
@key_modified['id'] = 1
|
207
206
|
end
|
208
207
|
|
209
|
-
# The method to get the category
|
210
|
-
# @return A Boolean value
|
211
|
-
|
212
|
-
def category
|
213
|
-
@category
|
214
|
-
end
|
215
|
-
|
216
|
-
# The method to set the value to category
|
217
|
-
# @param category [Boolean] A Boolean
|
218
|
-
|
219
|
-
def category=(category)
|
220
|
-
if category!=nil and ! [true, false].include?category
|
221
|
-
raise SDKException.new(Constants::DATA_TYPE_ERROR, 'KEY: category EXPECTED TYPE: Boolean', nil, nil)
|
222
|
-
end
|
223
|
-
@category = category
|
224
|
-
@key_modified['category'] = 1
|
225
|
-
end
|
226
|
-
|
227
208
|
# The method to get the custom
|
228
209
|
# @return A Boolean value
|
229
210
|
|
@@ -1,5 +1,4 @@
|
|
1
1
|
require_relative '../layouts/layout'
|
2
|
-
require_relative '../record/inventory_line_items'
|
3
2
|
require_relative '../record/participants'
|
4
3
|
require_relative '../record/pricing_details'
|
5
4
|
require_relative '../record/record'
|
@@ -791,6 +790,10 @@ module Record
|
|
791
790
|
def self.Carrier
|
792
791
|
@@Carrier
|
793
792
|
end
|
793
|
+
@@Quoted_items = Field.new('Quoted_Items')
|
794
|
+
def self.Quoted_items
|
795
|
+
@@Quoted_items
|
796
|
+
end
|
794
797
|
@@Quote_stage = Field.new('Quote_Stage')
|
795
798
|
def self.Quote_stage
|
796
799
|
@@Quote_stage
|
@@ -827,10 +830,6 @@ module Record
|
|
827
830
|
def self.Billing_code
|
828
831
|
@@Billing_code
|
829
832
|
end
|
830
|
-
@@Product_details = Field.new('Product_Details')
|
831
|
-
def self.Product_details
|
832
|
-
@@Product_details
|
833
|
-
end
|
834
833
|
@@Subject = Field.new('Subject')
|
835
834
|
def self.Subject
|
836
835
|
@@Subject
|
@@ -906,6 +905,10 @@ module Record
|
|
906
905
|
def self.Modified_by
|
907
906
|
@@Modified_by
|
908
907
|
end
|
908
|
+
@@Invoiced_items = Field.new('Invoiced_Items')
|
909
|
+
def self.Invoiced_items
|
910
|
+
@@Invoiced_items
|
911
|
+
end
|
909
912
|
@@Billing_country = Field.new('Billing_Country')
|
910
913
|
def self.Billing_country
|
911
914
|
@@Billing_country
|
@@ -970,10 +973,6 @@ module Record
|
|
970
973
|
def self.Billing_code
|
971
974
|
@@Billing_code
|
972
975
|
end
|
973
|
-
@@Product_details = Field.new('Product_Details')
|
974
|
-
def self.Product_details
|
975
|
-
@@Product_details
|
976
|
-
end
|
977
976
|
@@Subject = Field.new('Subject')
|
978
977
|
def self.Subject
|
979
978
|
@@Subject
|
@@ -1163,6 +1162,10 @@ module Record
|
|
1163
1162
|
def self.Carrier
|
1164
1163
|
@@Carrier
|
1165
1164
|
end
|
1165
|
+
@@Ordered_items = Field.new('Ordered_Items')
|
1166
|
+
def self.Ordered_items
|
1167
|
+
@@Ordered_items
|
1168
|
+
end
|
1166
1169
|
@@Quote_name = Field.new('Quote_Name')
|
1167
1170
|
def self.Quote_name
|
1168
1171
|
@@Quote_name
|
@@ -1211,10 +1214,6 @@ module Record
|
|
1211
1214
|
def self.Billing_code
|
1212
1215
|
@@Billing_code
|
1213
1216
|
end
|
1214
|
-
@@Product_details = Field.new('Product_Details')
|
1215
|
-
def self.Product_details
|
1216
|
-
@@Product_details
|
1217
|
-
end
|
1218
1217
|
@@Subject = Field.new('Subject')
|
1219
1218
|
def self.Subject
|
1220
1219
|
@@Subject
|
@@ -1691,6 +1690,10 @@ module Record
|
|
1691
1690
|
def self.Billing_country
|
1692
1691
|
@@Billing_country
|
1693
1692
|
end
|
1693
|
+
@@Purchase_items = Field.new('Purchase_Items')
|
1694
|
+
def self.Purchase_items
|
1695
|
+
@@Purchase_items
|
1696
|
+
end
|
1694
1697
|
@@id = Field.new('id')
|
1695
1698
|
def self.id
|
1696
1699
|
@@id
|
@@ -1747,10 +1750,6 @@ module Record
|
|
1747
1750
|
def self.Billing_code
|
1748
1751
|
@@Billing_code
|
1749
1752
|
end
|
1750
|
-
@@Product_details = Field.new('Product_Details')
|
1751
|
-
def self.Product_details
|
1752
|
-
@@Product_details
|
1753
|
-
end
|
1754
1753
|
@@Subject = Field.new('Subject')
|
1755
1754
|
def self.Subject
|
1756
1755
|
@@Subject
|
@@ -10,6 +10,7 @@ module Record
|
|
10
10
|
@name = nil
|
11
11
|
@id = nil
|
12
12
|
@value = nil
|
13
|
+
@display_name = nil
|
13
14
|
@key_modified = Hash.new
|
14
15
|
end
|
15
16
|
|
@@ -85,6 +86,24 @@ module Record
|
|
85
86
|
@key_modified['value'] = 1
|
86
87
|
end
|
87
88
|
|
89
|
+
# The method to get the display_name
|
90
|
+
# @return A String value
|
91
|
+
|
92
|
+
def display_name
|
93
|
+
@display_name
|
94
|
+
end
|
95
|
+
|
96
|
+
# The method to set the value to display_name
|
97
|
+
# @param display_name [String] A String
|
98
|
+
|
99
|
+
def display_name=(display_name)
|
100
|
+
if display_name!=nil and !display_name.is_a? String
|
101
|
+
raise SDKException.new(Constants::DATA_TYPE_ERROR, 'KEY: display_name EXPECTED TYPE: String', nil, nil)
|
102
|
+
end
|
103
|
+
@display_name = display_name
|
104
|
+
@key_modified['display_name'] = 1
|
105
|
+
end
|
106
|
+
|
88
107
|
# The method to check if the user has modified the given key
|
89
108
|
# @param key [String] A String
|
90
109
|
# @return A Integer value
|
@@ -80,6 +80,23 @@ module Users
|
|
80
80
|
add_key_value('signature', signature)
|
81
81
|
end
|
82
82
|
|
83
|
+
# The method to get the sort_order_preference
|
84
|
+
# @return A String value
|
85
|
+
|
86
|
+
def sort_order_preference
|
87
|
+
get_key_value('sort_order_preference')
|
88
|
+
end
|
89
|
+
|
90
|
+
# The method to set the value to sort_order_preference
|
91
|
+
# @param sort_order_preference [String] A String
|
92
|
+
|
93
|
+
def sort_order_preference=(sort_order_preference)
|
94
|
+
if sort_order_preference!=nil and !sort_order_preference.is_a? String
|
95
|
+
raise SDKException.new(Constants::DATA_TYPE_ERROR, 'KEY: sort_order_preference EXPECTED TYPE: String', nil, nil)
|
96
|
+
end
|
97
|
+
add_key_value('sort_order_preference', sort_order_preference)
|
98
|
+
end
|
99
|
+
|
83
100
|
# The method to get the city
|
84
101
|
# @return A String value
|
85
102
|
|
@@ -335,6 +352,23 @@ module Users
|
|
335
352
|
add_key_value('country_locale', country_locale)
|
336
353
|
end
|
337
354
|
|
355
|
+
# The method to get the sandboxdeveloper
|
356
|
+
# @return A Boolean value
|
357
|
+
|
358
|
+
def sandboxdeveloper
|
359
|
+
get_key_value('sandboxDeveloper')
|
360
|
+
end
|
361
|
+
|
362
|
+
# The method to set the value to sandboxdeveloper
|
363
|
+
# @param sandboxdeveloper [Boolean] A Boolean
|
364
|
+
|
365
|
+
def sandboxdeveloper=(sandboxdeveloper)
|
366
|
+
if sandboxdeveloper!=nil and ! [true, false].include?sandboxdeveloper
|
367
|
+
raise SDKException.new(Constants::DATA_TYPE_ERROR, 'KEY: sandboxdeveloper EXPECTED TYPE: Boolean', nil, nil)
|
368
|
+
end
|
369
|
+
add_key_value('sandboxDeveloper', sandboxdeveloper)
|
370
|
+
end
|
371
|
+
|
338
372
|
# The method to get the first_name
|
339
373
|
# @return A String value
|
340
374
|
|
@@ -96,7 +96,7 @@ module Util
|
|
96
96
|
|
97
97
|
def to_s
|
98
98
|
req_headers = @headers.clone
|
99
|
-
req_headers
|
99
|
+
req_headers[Constants::AUTHORIZATION] = Constants::CANT_DISCLOSE
|
100
100
|
@request_method + ' - ' + Constants::URL + ' = ' + @url + ', ' + Constants::HEADERS + ' = ' + req_headers.to_s + ', ' + Constants::PARAMS + ' = ' + @parameters.to_s
|
101
101
|
end
|
102
102
|
|
@@ -121,10 +121,12 @@ module Handler
|
|
121
121
|
unless response.body.nil?
|
122
122
|
mime_type = headers[Constants::CONTENT_TYPE]
|
123
123
|
|
124
|
-
|
125
|
-
|
124
|
+
unless mime_type.nil?
|
125
|
+
mime_type = mime_type.split(';')[0] if mime_type.include? ';'
|
126
|
+
converter_instance = get_converter_class_instance(mime_type.to_s.downcase)
|
126
127
|
|
127
|
-
|
128
|
+
return_object = converter_instance.get_wrapped_response(response, class_name)
|
129
|
+
end
|
128
130
|
end
|
129
131
|
|
130
132
|
unless return_object.nil?
|
@@ -96,16 +96,10 @@ class Constants
|
|
96
96
|
|
97
97
|
HTTP = 'http'
|
98
98
|
|
99
|
-
|
100
|
-
"Quoted_Items"=>"quotes",
|
99
|
+
INVENTORY_MODULES_ITEMS = ["invoiced_items", "quoted_items","purchase_items","ordered_items"]
|
101
100
|
|
102
|
-
|
101
|
+
PRODUCT_NAME = "Product_Name"
|
103
102
|
|
104
|
-
"Purchase_Items" => "purchase_orders",
|
105
|
-
|
106
|
-
"Ordered_Items" => "sales_orders"
|
107
|
-
|
108
|
-
}
|
109
103
|
DEFAULT_MODULENAME_VS_APINAME = {
|
110
104
|
|
111
105
|
"leads" => "Leads",
|
@@ -166,7 +160,7 @@ class Constants
|
|
166
160
|
|
167
161
|
ZOHO_SDK = 'X-ZOHO-SDK'
|
168
162
|
|
169
|
-
SDK_VERSION = '3.0.0
|
163
|
+
SDK_VERSION = '3.0.0'
|
170
164
|
|
171
165
|
SET_CONTENT_TYPE_HEADER = ['/crm/bulk/v2.1/read', '/crm/bulk/v2.1/write']
|
172
166
|
|
@@ -210,9 +204,9 @@ class Constants
|
|
210
204
|
|
211
205
|
NULL_VALUE_ERROR_MESSAGE = ' MUST NOT be null'
|
212
206
|
|
213
|
-
PARAM_INSTANCE_NULL_ERROR = 'Param
|
207
|
+
PARAM_INSTANCE_NULL_ERROR = 'Param Instance MUST NOT be null'
|
214
208
|
|
215
|
-
HEADER_INSTANCE_NULL_ERROR = 'Header
|
209
|
+
HEADER_INSTANCE_NULL_ERROR = 'Header Instance MUST NOT be null'
|
216
210
|
|
217
211
|
SDK_UNINITIALIZATION_ERROR = 'SDK UNINITIALIZED ERROR'
|
218
212
|
|
@@ -220,6 +214,8 @@ class Constants
|
|
220
214
|
|
221
215
|
MYSQL_HOST = 'localhost'
|
222
216
|
|
217
|
+
LINEITEM_PRODUCT = "com.zoho.crm.api.record.LineItemProduct"
|
218
|
+
|
223
219
|
REFRESH_TOKEN_MESSAGE = 'Access Token has expired. Hence refreshing.'
|
224
220
|
|
225
221
|
MYSQL_DATABASE_NAME = 'zohooauth'
|
@@ -398,6 +394,8 @@ class Constants
|
|
398
394
|
|
399
395
|
CASES = 'cases'
|
400
396
|
|
397
|
+
DISCOUNT = "DISCOUNT"
|
398
|
+
|
401
399
|
CANT_DISCLOSE = " ## can't disclose ## "
|
402
400
|
|
403
401
|
APPLICATION_FORM_URLENCODED = 'application/x-www-form-urlencoded'
|