ZOHOCRMSDK2_1 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (457) hide show
  1. checksums.yaml +7 -0
  2. data/src/ZOHOCRMSDK2_1.rb +453 -0
  3. data/src/com/zoho/api/authenticator/oauth_token.rb +285 -0
  4. data/src/com/zoho/api/authenticator/store/db_store.rb +193 -0
  5. data/src/com/zoho/api/authenticator/store/file_store.rb +239 -0
  6. data/src/com/zoho/api/authenticator/store/token_store.rb +35 -0
  7. data/src/com/zoho/api/authenticator/token.rb +12 -0
  8. data/src/com/zoho/api/logger/sdk_logger.rb +80 -0
  9. data/src/com/zoho/crm/api/assignment_rules/api_exception.rb +123 -0
  10. data/src/com/zoho/crm/api/assignment_rules/assignment_rule.rb +217 -0
  11. data/src/com/zoho/crm/api/assignment_rules/assignment_rules_operations.rb +63 -0
  12. data/src/com/zoho/crm/api/assignment_rules/default_user.rb +82 -0
  13. data/src/com/zoho/crm/api/assignment_rules/response_handler.rb +12 -0
  14. data/src/com/zoho/crm/api/assignment_rules/response_wrapper.rb +65 -0
  15. data/src/com/zoho/crm/api/attachments/action_handler.rb +12 -0
  16. data/src/com/zoho/crm/api/attachments/action_response.rb +12 -0
  17. data/src/com/zoho/crm/api/attachments/action_wrapper.rb +65 -0
  18. data/src/com/zoho/crm/api/attachments/api_exception.rb +127 -0
  19. data/src/com/zoho/crm/api/attachments/attachment.rb +407 -0
  20. data/src/com/zoho/crm/api/attachments/attachments_operations.rb +198 -0
  21. data/src/com/zoho/crm/api/attachments/file_body_wrapper.rb +66 -0
  22. data/src/com/zoho/crm/api/attachments/response_handler.rb +12 -0
  23. data/src/com/zoho/crm/api/attachments/response_wrapper.rb +85 -0
  24. data/src/com/zoho/crm/api/attachments/success_response.rb +123 -0
  25. data/src/com/zoho/crm/api/blue_print/action_response.rb +12 -0
  26. data/src/com/zoho/crm/api/blue_print/api_exception.rb +125 -0
  27. data/src/com/zoho/crm/api/blue_print/blue_print.rb +121 -0
  28. data/src/com/zoho/crm/api/blue_print/blue_print_operations.rb +69 -0
  29. data/src/com/zoho/crm/api/blue_print/body_wrapper.rb +63 -0
  30. data/src/com/zoho/crm/api/blue_print/escalation.rb +82 -0
  31. data/src/com/zoho/crm/api/blue_print/field.rb +1129 -0
  32. data/src/com/zoho/crm/api/blue_print/next_transition.rb +120 -0
  33. data/src/com/zoho/crm/api/blue_print/process_info.rb +253 -0
  34. data/src/com/zoho/crm/api/blue_print/response_handler.rb +12 -0
  35. data/src/com/zoho/crm/api/blue_print/response_wrapper.rb +65 -0
  36. data/src/com/zoho/crm/api/blue_print/success_response.rb +123 -0
  37. data/src/com/zoho/crm/api/blue_print/transition.rb +273 -0
  38. data/src/com/zoho/crm/api/blue_print/validation_error.rb +139 -0
  39. data/src/com/zoho/crm/api/bulk_read/action_handler.rb +12 -0
  40. data/src/com/zoho/crm/api/bulk_read/action_response.rb +12 -0
  41. data/src/com/zoho/crm/api/bulk_read/action_wrapper.rb +84 -0
  42. data/src/com/zoho/crm/api/bulk_read/api_exception.rb +127 -0
  43. data/src/com/zoho/crm/api/bulk_read/bulk_read_operations.rb +76 -0
  44. data/src/com/zoho/crm/api/bulk_read/call_back.rb +83 -0
  45. data/src/com/zoho/crm/api/bulk_read/criteria.rb +157 -0
  46. data/src/com/zoho/crm/api/bulk_read/file_body_wrapper.rb +66 -0
  47. data/src/com/zoho/crm/api/bulk_read/job_detail.rb +198 -0
  48. data/src/com/zoho/crm/api/bulk_read/query.rb +140 -0
  49. data/src/com/zoho/crm/api/bulk_read/request_wrapper.rb +102 -0
  50. data/src/com/zoho/crm/api/bulk_read/response_handler.rb +12 -0
  51. data/src/com/zoho/crm/api/bulk_read/response_wrapper.rb +65 -0
  52. data/src/com/zoho/crm/api/bulk_read/result.rb +139 -0
  53. data/src/com/zoho/crm/api/bulk_read/success_response.rb +123 -0
  54. data/src/com/zoho/crm/api/bulk_write/action_response.rb +12 -0
  55. data/src/com/zoho/crm/api/bulk_write/api_exception.rb +241 -0
  56. data/src/com/zoho/crm/api/bulk_write/bulk_write_operations.rb +114 -0
  57. data/src/com/zoho/crm/api/bulk_write/bulk_write_response.rb +218 -0
  58. data/src/com/zoho/crm/api/bulk_write/call_back.rb +83 -0
  59. data/src/com/zoho/crm/api/bulk_write/field_mapping.rb +158 -0
  60. data/src/com/zoho/crm/api/bulk_write/file.rb +159 -0
  61. data/src/com/zoho/crm/api/bulk_write/file_body_wrapper.rb +66 -0
  62. data/src/com/zoho/crm/api/bulk_write/request_wrapper.rb +121 -0
  63. data/src/com/zoho/crm/api/bulk_write/resource.rb +217 -0
  64. data/src/com/zoho/crm/api/bulk_write/response_handler.rb +12 -0
  65. data/src/com/zoho/crm/api/bulk_write/response_wrapper.rb +12 -0
  66. data/src/com/zoho/crm/api/bulk_write/result.rb +63 -0
  67. data/src/com/zoho/crm/api/bulk_write/success_response.rb +123 -0
  68. data/src/com/zoho/crm/api/contact_roles/action_handler.rb +12 -0
  69. data/src/com/zoho/crm/api/contact_roles/action_response.rb +12 -0
  70. data/src/com/zoho/crm/api/contact_roles/action_wrapper.rb +65 -0
  71. data/src/com/zoho/crm/api/contact_roles/api_exception.rb +131 -0
  72. data/src/com/zoho/crm/api/contact_roles/body_wrapper.rb +63 -0
  73. data/src/com/zoho/crm/api/contact_roles/contact_role.rb +101 -0
  74. data/src/com/zoho/crm/api/contact_roles/contact_role_wrapper.rb +63 -0
  75. data/src/com/zoho/crm/api/contact_roles/contact_roles_operations.rb +281 -0
  76. data/src/com/zoho/crm/api/contact_roles/record_action_handler.rb +12 -0
  77. data/src/com/zoho/crm/api/contact_roles/record_action_wrapper.rb +65 -0
  78. data/src/com/zoho/crm/api/contact_roles/record_body_wrapper.rb +63 -0
  79. data/src/com/zoho/crm/api/contact_roles/record_response_handler.rb +12 -0
  80. data/src/com/zoho/crm/api/contact_roles/record_response_wrapper.rb +86 -0
  81. data/src/com/zoho/crm/api/contact_roles/response_handler.rb +12 -0
  82. data/src/com/zoho/crm/api/contact_roles/response_wrapper.rb +65 -0
  83. data/src/com/zoho/crm/api/contact_roles/success_response.rb +123 -0
  84. data/src/com/zoho/crm/api/currencies/action_handler.rb +12 -0
  85. data/src/com/zoho/crm/api/currencies/action_response.rb +12 -0
  86. data/src/com/zoho/crm/api/currencies/action_wrapper.rb +65 -0
  87. data/src/com/zoho/crm/api/currencies/api_exception.rb +129 -0
  88. data/src/com/zoho/crm/api/currencies/base_currency_action_handler.rb +12 -0
  89. data/src/com/zoho/crm/api/currencies/base_currency_action_wrapper.rb +65 -0
  90. data/src/com/zoho/crm/api/currencies/base_currency_wrapper.rb +63 -0
  91. data/src/com/zoho/crm/api/currencies/body_wrapper.rb +63 -0
  92. data/src/com/zoho/crm/api/currencies/currencies_operations.rb +158 -0
  93. data/src/com/zoho/crm/api/currencies/currency.rb +292 -0
  94. data/src/com/zoho/crm/api/currencies/format.rb +102 -0
  95. data/src/com/zoho/crm/api/currencies/response_handler.rb +12 -0
  96. data/src/com/zoho/crm/api/currencies/response_wrapper.rb +65 -0
  97. data/src/com/zoho/crm/api/currencies/success_response.rb +123 -0
  98. data/src/com/zoho/crm/api/custom_views/api_exception.rb +123 -0
  99. data/src/com/zoho/crm/api/custom_views/criteria.rb +138 -0
  100. data/src/com/zoho/crm/api/custom_views/custom_view.rb +407 -0
  101. data/src/com/zoho/crm/api/custom_views/custom_views_operations.rb +77 -0
  102. data/src/com/zoho/crm/api/custom_views/info.rb +158 -0
  103. data/src/com/zoho/crm/api/custom_views/range.rb +82 -0
  104. data/src/com/zoho/crm/api/custom_views/response_handler.rb +12 -0
  105. data/src/com/zoho/crm/api/custom_views/response_wrapper.rb +84 -0
  106. data/src/com/zoho/crm/api/custom_views/shared_to.rb +120 -0
  107. data/src/com/zoho/crm/api/custom_views/translation.rb +120 -0
  108. data/src/com/zoho/crm/api/dc/au_datacenter.rb +21 -0
  109. data/src/com/zoho/crm/api/dc/cn_datacenter.rb +21 -0
  110. data/src/com/zoho/crm/api/dc/datacenter.rb +23 -0
  111. data/src/com/zoho/crm/api/dc/eu_datacenter.rb +21 -0
  112. data/src/com/zoho/crm/api/dc/in_datacenter.rb +21 -0
  113. data/src/com/zoho/crm/api/dc/us_datacenter.rb +21 -0
  114. data/src/com/zoho/crm/api/email_templates/api_exception.rb +123 -0
  115. data/src/com/zoho/crm/api/email_templates/attachment.rb +120 -0
  116. data/src/com/zoho/crm/api/email_templates/email_template.rb +392 -0
  117. data/src/com/zoho/crm/api/email_templates/email_templates_operations.rb +63 -0
  118. data/src/com/zoho/crm/api/email_templates/response_handler.rb +12 -0
  119. data/src/com/zoho/crm/api/email_templates/response_wrapper.rb +85 -0
  120. data/src/com/zoho/crm/api/exception/sdk_exception.rb +49 -0
  121. data/src/com/zoho/crm/api/field_attachments/api_exception.rb +123 -0
  122. data/src/com/zoho/crm/api/field_attachments/body_wrapper.rb +64 -0
  123. data/src/com/zoho/crm/api/field_attachments/field_attachments_operations.rb +54 -0
  124. data/src/com/zoho/crm/api/field_attachments/file_body_wrapper.rb +66 -0
  125. data/src/com/zoho/crm/api/field_attachments/response_handler.rb +12 -0
  126. data/src/com/zoho/crm/api/fields/api_exception.rb +123 -0
  127. data/src/com/zoho/crm/api/fields/association_details.rb +82 -0
  128. data/src/com/zoho/crm/api/fields/auto_number.rb +101 -0
  129. data/src/com/zoho/crm/api/fields/crypt.rb +158 -0
  130. data/src/com/zoho/crm/api/fields/currency.rb +82 -0
  131. data/src/com/zoho/crm/api/fields/external.rb +101 -0
  132. data/src/com/zoho/crm/api/fields/field.rb +1131 -0
  133. data/src/com/zoho/crm/api/fields/fields_operations.rb +73 -0
  134. data/src/com/zoho/crm/api/fields/formula.rb +82 -0
  135. data/src/com/zoho/crm/api/fields/history_tracking.rb +82 -0
  136. data/src/com/zoho/crm/api/fields/lookup_field.rb +82 -0
  137. data/src/com/zoho/crm/api/fields/maps.rb +82 -0
  138. data/src/com/zoho/crm/api/fields/module.rb +159 -0
  139. data/src/com/zoho/crm/api/fields/multi_module_lookup.rb +101 -0
  140. data/src/com/zoho/crm/api/fields/multi_select_lookup.rb +177 -0
  141. data/src/com/zoho/crm/api/fields/multi_user_lookup.rb +177 -0
  142. data/src/com/zoho/crm/api/fields/pick_list_value.rb +253 -0
  143. data/src/com/zoho/crm/api/fields/private.rb +101 -0
  144. data/src/com/zoho/crm/api/fields/related_details.rb +158 -0
  145. data/src/com/zoho/crm/api/fields/response_handler.rb +12 -0
  146. data/src/com/zoho/crm/api/fields/response_wrapper.rb +65 -0
  147. data/src/com/zoho/crm/api/fields/tool_tip.rb +82 -0
  148. data/src/com/zoho/crm/api/fields/unique.rb +63 -0
  149. data/src/com/zoho/crm/api/fields/view_type.rb +120 -0
  150. data/src/com/zoho/crm/api/files/action_handler.rb +12 -0
  151. data/src/com/zoho/crm/api/files/action_response.rb +12 -0
  152. data/src/com/zoho/crm/api/files/action_wrapper.rb +65 -0
  153. data/src/com/zoho/crm/api/files/api_exception.rb +127 -0
  154. data/src/com/zoho/crm/api/files/body_wrapper.rb +64 -0
  155. data/src/com/zoho/crm/api/files/file_body_wrapper.rb +66 -0
  156. data/src/com/zoho/crm/api/files/file_operations.rb +77 -0
  157. data/src/com/zoho/crm/api/files/response_handler.rb +12 -0
  158. data/src/com/zoho/crm/api/files/success_response.rb +123 -0
  159. data/src/com/zoho/crm/api/header.rb +12 -0
  160. data/src/com/zoho/crm/api/header_map.rb +57 -0
  161. data/src/com/zoho/crm/api/initializer.rb +232 -0
  162. data/src/com/zoho/crm/api/inventory_templates/api_exception.rb +123 -0
  163. data/src/com/zoho/crm/api/inventory_templates/inventory_template.rb +354 -0
  164. data/src/com/zoho/crm/api/inventory_templates/inventory_templates_operations.rb +87 -0
  165. data/src/com/zoho/crm/api/inventory_templates/response_handler.rb +12 -0
  166. data/src/com/zoho/crm/api/inventory_templates/response_wrapper.rb +85 -0
  167. data/src/com/zoho/crm/api/layouts/api_exception.rb +123 -0
  168. data/src/com/zoho/crm/api/layouts/layout.rb +312 -0
  169. data/src/com/zoho/crm/api/layouts/layouts_operations.rb +63 -0
  170. data/src/com/zoho/crm/api/layouts/properties.rb +102 -0
  171. data/src/com/zoho/crm/api/layouts/response_handler.rb +12 -0
  172. data/src/com/zoho/crm/api/layouts/response_wrapper.rb +65 -0
  173. data/src/com/zoho/crm/api/layouts/section.rb +254 -0
  174. data/src/com/zoho/crm/api/modules/action_handler.rb +12 -0
  175. data/src/com/zoho/crm/api/modules/action_response.rb +12 -0
  176. data/src/com/zoho/crm/api/modules/action_wrapper.rb +65 -0
  177. data/src/com/zoho/crm/api/modules/api_exception.rb +127 -0
  178. data/src/com/zoho/crm/api/modules/argument.rb +82 -0
  179. data/src/com/zoho/crm/api/modules/body_wrapper.rb +63 -0
  180. data/src/com/zoho/crm/api/modules/module.rb +941 -0
  181. data/src/com/zoho/crm/api/modules/modules_operations.rb +113 -0
  182. data/src/com/zoho/crm/api/modules/related_list_properties.rb +101 -0
  183. data/src/com/zoho/crm/api/modules/response_handler.rb +12 -0
  184. data/src/com/zoho/crm/api/modules/response_wrapper.rb +65 -0
  185. data/src/com/zoho/crm/api/modules/success_response.rb +123 -0
  186. data/src/com/zoho/crm/api/modules/territory.rb +101 -0
  187. data/src/com/zoho/crm/api/notes/action_handler.rb +12 -0
  188. data/src/com/zoho/crm/api/notes/action_response.rb +12 -0
  189. data/src/com/zoho/crm/api/notes/action_wrapper.rb +65 -0
  190. data/src/com/zoho/crm/api/notes/api_exception.rb +127 -0
  191. data/src/com/zoho/crm/api/notes/body_wrapper.rb +63 -0
  192. data/src/com/zoho/crm/api/notes/info.rb +120 -0
  193. data/src/com/zoho/crm/api/notes/note.rb +370 -0
  194. data/src/com/zoho/crm/api/notes/notes_operations.rb +229 -0
  195. data/src/com/zoho/crm/api/notes/response_handler.rb +12 -0
  196. data/src/com/zoho/crm/api/notes/response_wrapper.rb +84 -0
  197. data/src/com/zoho/crm/api/notes/success_response.rb +123 -0
  198. data/src/com/zoho/crm/api/notification/action_handler.rb +12 -0
  199. data/src/com/zoho/crm/api/notification/action_response.rb +12 -0
  200. data/src/com/zoho/crm/api/notification/action_wrapper.rb +65 -0
  201. data/src/com/zoho/crm/api/notification/api_exception.rb +127 -0
  202. data/src/com/zoho/crm/api/notification/body_wrapper.rb +63 -0
  203. data/src/com/zoho/crm/api/notification/info.rb +120 -0
  204. data/src/com/zoho/crm/api/notification/notification.rb +253 -0
  205. data/src/com/zoho/crm/api/notification/notification_operations.rb +166 -0
  206. data/src/com/zoho/crm/api/notification/response_handler.rb +12 -0
  207. data/src/com/zoho/crm/api/notification/response_wrapper.rb +84 -0
  208. data/src/com/zoho/crm/api/notification/success_response.rb +123 -0
  209. data/src/com/zoho/crm/api/org/action_response.rb +12 -0
  210. data/src/com/zoho/crm/api/org/api_exception.rb +125 -0
  211. data/src/com/zoho/crm/api/org/file_body_wrapper.rb +64 -0
  212. data/src/com/zoho/crm/api/org/hierarchy_preference.rb +63 -0
  213. data/src/com/zoho/crm/api/org/license_details.rb +158 -0
  214. data/src/com/zoho/crm/api/org/org.rb +671 -0
  215. data/src/com/zoho/crm/api/org/org_operations.rb +51 -0
  216. data/src/com/zoho/crm/api/org/response_handler.rb +12 -0
  217. data/src/com/zoho/crm/api/org/response_wrapper.rb +65 -0
  218. data/src/com/zoho/crm/api/org/success_response.rb +123 -0
  219. data/src/com/zoho/crm/api/param.rb +12 -0
  220. data/src/com/zoho/crm/api/parameter_map.rb +56 -0
  221. data/src/com/zoho/crm/api/pipeline/action_handler.rb +12 -0
  222. data/src/com/zoho/crm/api/pipeline/action_response.rb +12 -0
  223. data/src/com/zoho/crm/api/pipeline/action_wrapper.rb +65 -0
  224. data/src/com/zoho/crm/api/pipeline/api_exception.rb +131 -0
  225. data/src/com/zoho/crm/api/pipeline/body_wrapper.rb +63 -0
  226. data/src/com/zoho/crm/api/pipeline/forecast_category.rb +82 -0
  227. data/src/com/zoho/crm/api/pipeline/pick_list_value.rb +177 -0
  228. data/src/com/zoho/crm/api/pipeline/pipeline.rb +215 -0
  229. data/src/com/zoho/crm/api/pipeline/pipeline_operations.rb +167 -0
  230. data/src/com/zoho/crm/api/pipeline/response_handler.rb +12 -0
  231. data/src/com/zoho/crm/api/pipeline/response_wrapper.rb +65 -0
  232. data/src/com/zoho/crm/api/pipeline/stage.rb +82 -0
  233. data/src/com/zoho/crm/api/pipeline/success_response.rb +125 -0
  234. data/src/com/zoho/crm/api/pipeline/transfer_action_handler.rb +12 -0
  235. data/src/com/zoho/crm/api/pipeline/transfer_action_response.rb +12 -0
  236. data/src/com/zoho/crm/api/pipeline/transfer_action_wrapper.rb +65 -0
  237. data/src/com/zoho/crm/api/pipeline/transfer_and_delete_wrapper.rb +63 -0
  238. data/src/com/zoho/crm/api/pipeline/transfer_pipe_line.rb +82 -0
  239. data/src/com/zoho/crm/api/profiles/api_exception.rb +123 -0
  240. data/src/com/zoho/crm/api/profiles/category.rb +120 -0
  241. data/src/com/zoho/crm/api/profiles/default_view.rb +101 -0
  242. data/src/com/zoho/crm/api/profiles/permission_detail.rb +139 -0
  243. data/src/com/zoho/crm/api/profiles/profile.rb +330 -0
  244. data/src/com/zoho/crm/api/profiles/profiles_operations.rb +63 -0
  245. data/src/com/zoho/crm/api/profiles/response_handler.rb +12 -0
  246. data/src/com/zoho/crm/api/profiles/response_wrapper.rb +65 -0
  247. data/src/com/zoho/crm/api/profiles/section.rb +82 -0
  248. data/src/com/zoho/crm/api/query/api_exception.rb +123 -0
  249. data/src/com/zoho/crm/api/query/body_wrapper.rb +63 -0
  250. data/src/com/zoho/crm/api/query/query_operations.rb +37 -0
  251. data/src/com/zoho/crm/api/query/response_handler.rb +12 -0
  252. data/src/com/zoho/crm/api/query/response_wrapper.rb +86 -0
  253. data/src/com/zoho/crm/api/record/action_handler.rb +12 -0
  254. data/src/com/zoho/crm/api/record/action_response.rb +12 -0
  255. data/src/com/zoho/crm/api/record/action_wrapper.rb +65 -0
  256. data/src/com/zoho/crm/api/record/api_exception.rb +147 -0
  257. data/src/com/zoho/crm/api/record/body_wrapper.rb +158 -0
  258. data/src/com/zoho/crm/api/record/carry_over_tags.rb +101 -0
  259. data/src/com/zoho/crm/api/record/comment.rb +120 -0
  260. data/src/com/zoho/crm/api/record/consent.rb +187 -0
  261. data/src/com/zoho/crm/api/record/convert_action_handler.rb +12 -0
  262. data/src/com/zoho/crm/api/record/convert_action_response.rb +12 -0
  263. data/src/com/zoho/crm/api/record/convert_action_wrapper.rb +65 -0
  264. data/src/com/zoho/crm/api/record/convert_body_wrapper.rb +63 -0
  265. data/src/com/zoho/crm/api/record/count_handler.rb +12 -0
  266. data/src/com/zoho/crm/api/record/count_wrapper.rb +65 -0
  267. data/src/com/zoho/crm/api/record/criteria.rb +137 -0
  268. data/src/com/zoho/crm/api/record/deleted_record.rb +159 -0
  269. data/src/com/zoho/crm/api/record/deleted_records_handler.rb +12 -0
  270. data/src/com/zoho/crm/api/record/deleted_records_wrapper.rb +84 -0
  271. data/src/com/zoho/crm/api/record/download_handler.rb +12 -0
  272. data/src/com/zoho/crm/api/record/field.rb +2111 -0
  273. data/src/com/zoho/crm/api/record/file_body_wrapper.rb +68 -0
  274. data/src/com/zoho/crm/api/record/file_details.rb +329 -0
  275. data/src/com/zoho/crm/api/record/file_handler.rb +12 -0
  276. data/src/com/zoho/crm/api/record/image_upload.rb +215 -0
  277. data/src/com/zoho/crm/api/record/info.rb +120 -0
  278. data/src/com/zoho/crm/api/record/lead_converter.rb +196 -0
  279. data/src/com/zoho/crm/api/record/line_item_product.rb +67 -0
  280. data/src/com/zoho/crm/api/record/line_tax.rb +139 -0
  281. data/src/com/zoho/crm/api/record/mass_update.rb +142 -0
  282. data/src/com/zoho/crm/api/record/mass_update_action_handler.rb +12 -0
  283. data/src/com/zoho/crm/api/record/mass_update_action_response.rb +12 -0
  284. data/src/com/zoho/crm/api/record/mass_update_action_wrapper.rb +65 -0
  285. data/src/com/zoho/crm/api/record/mass_update_body_wrapper.rb +158 -0
  286. data/src/com/zoho/crm/api/record/mass_update_response.rb +12 -0
  287. data/src/com/zoho/crm/api/record/mass_update_response_handler.rb +12 -0
  288. data/src/com/zoho/crm/api/record/mass_update_response_wrapper.rb +65 -0
  289. data/src/com/zoho/crm/api/record/mass_update_success_response.rb +123 -0
  290. data/src/com/zoho/crm/api/record/mass_update_territory.rb +82 -0
  291. data/src/com/zoho/crm/api/record/multi_select_lookup.rb +101 -0
  292. data/src/com/zoho/crm/api/record/multi_select_picklist.rb +82 -0
  293. data/src/com/zoho/crm/api/record/options.rb +12 -0
  294. data/src/com/zoho/crm/api/record/participants.rb +118 -0
  295. data/src/com/zoho/crm/api/record/price_book.rb +33 -0
  296. data/src/com/zoho/crm/api/record/pricing_details.rb +67 -0
  297. data/src/com/zoho/crm/api/record/record.rb +194 -0
  298. data/src/com/zoho/crm/api/record/record_operations.rb +1132 -0
  299. data/src/com/zoho/crm/api/record/recurring_activity.rb +63 -0
  300. data/src/com/zoho/crm/api/record/remind_at.rb +63 -0
  301. data/src/com/zoho/crm/api/record/reminder.rb +82 -0
  302. data/src/com/zoho/crm/api/record/response_handler.rb +12 -0
  303. data/src/com/zoho/crm/api/record/response_wrapper.rb +84 -0
  304. data/src/com/zoho/crm/api/record/success_response.rb +163 -0
  305. data/src/com/zoho/crm/api/record/successful_convert.rb +103 -0
  306. data/src/com/zoho/crm/api/record/tax.rb +82 -0
  307. data/src/com/zoho/crm/api/record/territory.rb +140 -0
  308. data/src/com/zoho/crm/api/record/widget.rb +82 -0
  309. data/src/com/zoho/crm/api/record/wizard.rb +82 -0
  310. data/src/com/zoho/crm/api/related_lists/api_exception.rb +123 -0
  311. data/src/com/zoho/crm/api/related_lists/related_list.rb +253 -0
  312. data/src/com/zoho/crm/api/related_lists/related_lists_operations.rb +63 -0
  313. data/src/com/zoho/crm/api/related_lists/response_handler.rb +12 -0
  314. data/src/com/zoho/crm/api/related_lists/response_wrapper.rb +65 -0
  315. data/src/com/zoho/crm/api/related_records/action_handler.rb +12 -0
  316. data/src/com/zoho/crm/api/related_records/action_response.rb +12 -0
  317. data/src/com/zoho/crm/api/related_records/action_wrapper.rb +65 -0
  318. data/src/com/zoho/crm/api/related_records/api_exception.rb +127 -0
  319. data/src/com/zoho/crm/api/related_records/body_wrapper.rb +64 -0
  320. data/src/com/zoho/crm/api/related_records/file_body_wrapper.rb +66 -0
  321. data/src/com/zoho/crm/api/related_records/related_records_operations.rb +524 -0
  322. data/src/com/zoho/crm/api/related_records/response_handler.rb +12 -0
  323. data/src/com/zoho/crm/api/related_records/response_wrapper.rb +86 -0
  324. data/src/com/zoho/crm/api/related_records/success_response.rb +123 -0
  325. data/src/com/zoho/crm/api/request_proxy.rb +17 -0
  326. data/src/com/zoho/crm/api/roles/api_exception.rb +123 -0
  327. data/src/com/zoho/crm/api/roles/response_handler.rb +12 -0
  328. data/src/com/zoho/crm/api/roles/response_wrapper.rb +65 -0
  329. data/src/com/zoho/crm/api/roles/role.rb +197 -0
  330. data/src/com/zoho/crm/api/roles/roles_operations.rb +49 -0
  331. data/src/com/zoho/crm/api/sdk_config.rb +15 -0
  332. data/src/com/zoho/crm/api/send_mail/action_handler.rb +12 -0
  333. data/src/com/zoho/crm/api/send_mail/action_response.rb +12 -0
  334. data/src/com/zoho/crm/api/send_mail/action_wrapper.rb +65 -0
  335. data/src/com/zoho/crm/api/send_mail/api_exception.rb +127 -0
  336. data/src/com/zoho/crm/api/send_mail/body_wrapper.rb +63 -0
  337. data/src/com/zoho/crm/api/send_mail/data_subject_request.rb +82 -0
  338. data/src/com/zoho/crm/api/send_mail/inventory_details.rb +102 -0
  339. data/src/com/zoho/crm/api/send_mail/mail.rb +425 -0
  340. data/src/com/zoho/crm/api/send_mail/response_handler.rb +12 -0
  341. data/src/com/zoho/crm/api/send_mail/response_wrapper.rb +65 -0
  342. data/src/com/zoho/crm/api/send_mail/send_mail_operations.rb +63 -0
  343. data/src/com/zoho/crm/api/send_mail/success_response.rb +123 -0
  344. data/src/com/zoho/crm/api/send_mail/template.rb +12 -0
  345. data/src/com/zoho/crm/api/send_mail/user_address.rb +139 -0
  346. data/src/com/zoho/crm/api/share_records/action_handler.rb +12 -0
  347. data/src/com/zoho/crm/api/share_records/action_response.rb +12 -0
  348. data/src/com/zoho/crm/api/share_records/action_wrapper.rb +65 -0
  349. data/src/com/zoho/crm/api/share_records/api_exception.rb +131 -0
  350. data/src/com/zoho/crm/api/share_records/body_wrapper.rb +63 -0
  351. data/src/com/zoho/crm/api/share_records/delete_action_handler.rb +12 -0
  352. data/src/com/zoho/crm/api/share_records/delete_action_response.rb +12 -0
  353. data/src/com/zoho/crm/api/share_records/delete_action_wrapper.rb +65 -0
  354. data/src/com/zoho/crm/api/share_records/response_handler.rb +12 -0
  355. data/src/com/zoho/crm/api/share_records/response_wrapper.rb +85 -0
  356. data/src/com/zoho/crm/api/share_records/share_record.rb +159 -0
  357. data/src/com/zoho/crm/api/share_records/share_records_operations.rb +130 -0
  358. data/src/com/zoho/crm/api/share_records/shared_through.rb +102 -0
  359. data/src/com/zoho/crm/api/share_records/success_response.rb +125 -0
  360. data/src/com/zoho/crm/api/tags/action_handler.rb +12 -0
  361. data/src/com/zoho/crm/api/tags/action_response.rb +12 -0
  362. data/src/com/zoho/crm/api/tags/action_wrapper.rb +65 -0
  363. data/src/com/zoho/crm/api/tags/api_exception.rb +133 -0
  364. data/src/com/zoho/crm/api/tags/body_wrapper.rb +63 -0
  365. data/src/com/zoho/crm/api/tags/conflict_wrapper.rb +63 -0
  366. data/src/com/zoho/crm/api/tags/count_handler.rb +12 -0
  367. data/src/com/zoho/crm/api/tags/count_wrapper.rb +65 -0
  368. data/src/com/zoho/crm/api/tags/info.rb +82 -0
  369. data/src/com/zoho/crm/api/tags/merge_wrapper.rb +63 -0
  370. data/src/com/zoho/crm/api/tags/record_action_handler.rb +12 -0
  371. data/src/com/zoho/crm/api/tags/record_action_response.rb +12 -0
  372. data/src/com/zoho/crm/api/tags/record_action_wrapper.rb +122 -0
  373. data/src/com/zoho/crm/api/tags/response_handler.rb +12 -0
  374. data/src/com/zoho/crm/api/tags/response_wrapper.rb +84 -0
  375. data/src/com/zoho/crm/api/tags/success_response.rb +125 -0
  376. data/src/com/zoho/crm/api/tags/tag.rb +178 -0
  377. data/src/com/zoho/crm/api/tags/tags_operations.rb +389 -0
  378. data/src/com/zoho/crm/api/taxes/action_handler.rb +12 -0
  379. data/src/com/zoho/crm/api/taxes/action_response.rb +12 -0
  380. data/src/com/zoho/crm/api/taxes/action_wrapper.rb +65 -0
  381. data/src/com/zoho/crm/api/taxes/api_exception.rb +127 -0
  382. data/src/com/zoho/crm/api/taxes/body_wrapper.rb +63 -0
  383. data/src/com/zoho/crm/api/taxes/preference.rb +82 -0
  384. data/src/com/zoho/crm/api/taxes/response_handler.rb +12 -0
  385. data/src/com/zoho/crm/api/taxes/response_wrapper.rb +84 -0
  386. data/src/com/zoho/crm/api/taxes/success_response.rb +123 -0
  387. data/src/com/zoho/crm/api/taxes/tax.rb +139 -0
  388. data/src/com/zoho/crm/api/taxes/taxes_operations.rb +138 -0
  389. data/src/com/zoho/crm/api/territories/api_exception.rb +123 -0
  390. data/src/com/zoho/crm/api/territories/response_handler.rb +12 -0
  391. data/src/com/zoho/crm/api/territories/response_wrapper.rb +85 -0
  392. data/src/com/zoho/crm/api/territories/territories_operations.rb +49 -0
  393. data/src/com/zoho/crm/api/territories/territory.rb +274 -0
  394. data/src/com/zoho/crm/api/user_signature.rb +29 -0
  395. data/src/com/zoho/crm/api/users/action_handler.rb +12 -0
  396. data/src/com/zoho/crm/api/users/action_response.rb +12 -0
  397. data/src/com/zoho/crm/api/users/action_wrapper.rb +65 -0
  398. data/src/com/zoho/crm/api/users/api_exception.rb +127 -0
  399. data/src/com/zoho/crm/api/users/body_wrapper.rb +63 -0
  400. data/src/com/zoho/crm/api/users/customize_info.rb +158 -0
  401. data/src/com/zoho/crm/api/users/info.rb +120 -0
  402. data/src/com/zoho/crm/api/users/request_wrapper.rb +63 -0
  403. data/src/com/zoho/crm/api/users/response_handler.rb +12 -0
  404. data/src/com/zoho/crm/api/users/response_wrapper.rb +84 -0
  405. data/src/com/zoho/crm/api/users/shift.rb +82 -0
  406. data/src/com/zoho/crm/api/users/success_response.rb +123 -0
  407. data/src/com/zoho/crm/api/users/tab_theme.rb +82 -0
  408. data/src/com/zoho/crm/api/users/territory.rb +101 -0
  409. data/src/com/zoho/crm/api/users/theme.rb +158 -0
  410. data/src/com/zoho/crm/api/users/user.rb +749 -0
  411. data/src/com/zoho/crm/api/users/users_operations.rb +183 -0
  412. data/src/com/zoho/crm/api/util/api_http_connector.rb +114 -0
  413. data/src/com/zoho/crm/api/util/api_response.rb +18 -0
  414. data/src/com/zoho/crm/api/util/choice.rb +11 -0
  415. data/src/com/zoho/crm/api/util/common_api_handler.rb +241 -0
  416. data/src/com/zoho/crm/api/util/constants.rb +676 -0
  417. data/src/com/zoho/crm/api/util/converter.rb +238 -0
  418. data/src/com/zoho/crm/api/util/data_type_converter.rb +170 -0
  419. data/src/com/zoho/crm/api/util/downloader.rb +86 -0
  420. data/src/com/zoho/crm/api/util/form_data_converter.rb +159 -0
  421. data/src/com/zoho/crm/api/util/header_param_validator.rb +57 -0
  422. data/src/com/zoho/crm/api/util/json_converter.rb +731 -0
  423. data/src/com/zoho/crm/api/util/model.rb +7 -0
  424. data/src/com/zoho/crm/api/util/module_fields_handler.rb +80 -0
  425. data/src/com/zoho/crm/api/util/stream_wrapper.rb +39 -0
  426. data/src/com/zoho/crm/api/util/utility.rb +927 -0
  427. data/src/com/zoho/crm/api/variable_groups/api_exception.rb +123 -0
  428. data/src/com/zoho/crm/api/variable_groups/response_handler.rb +12 -0
  429. data/src/com/zoho/crm/api/variable_groups/response_wrapper.rb +65 -0
  430. data/src/com/zoho/crm/api/variable_groups/variable_group.rb +139 -0
  431. data/src/com/zoho/crm/api/variable_groups/variable_groups_operations.rb +68 -0
  432. data/src/com/zoho/crm/api/variables/action_handler.rb +12 -0
  433. data/src/com/zoho/crm/api/variables/action_response.rb +12 -0
  434. data/src/com/zoho/crm/api/variables/action_wrapper.rb +65 -0
  435. data/src/com/zoho/crm/api/variables/api_exception.rb +127 -0
  436. data/src/com/zoho/crm/api/variables/body_wrapper.rb +63 -0
  437. data/src/com/zoho/crm/api/variables/response_handler.rb +12 -0
  438. data/src/com/zoho/crm/api/variables/response_wrapper.rb +65 -0
  439. data/src/com/zoho/crm/api/variables/success_response.rb +123 -0
  440. data/src/com/zoho/crm/api/variables/variable.rb +194 -0
  441. data/src/com/zoho/crm/api/variables/variables_operations.rb +243 -0
  442. data/src/com/zoho/crm/api/wizards/api_exception.rb +123 -0
  443. data/src/com/zoho/crm/api/wizards/button.rb +254 -0
  444. data/src/com/zoho/crm/api/wizards/chart_data.rb +120 -0
  445. data/src/com/zoho/crm/api/wizards/connection.rb +82 -0
  446. data/src/com/zoho/crm/api/wizards/container.rb +121 -0
  447. data/src/com/zoho/crm/api/wizards/node.rb +120 -0
  448. data/src/com/zoho/crm/api/wizards/response_handler.rb +12 -0
  449. data/src/com/zoho/crm/api/wizards/response_wrapper.rb +65 -0
  450. data/src/com/zoho/crm/api/wizards/screen.rb +101 -0
  451. data/src/com/zoho/crm/api/wizards/segment.rb +178 -0
  452. data/src/com/zoho/crm/api/wizards/transition.rb +82 -0
  453. data/src/com/zoho/crm/api/wizards/wizard.rb +275 -0
  454. data/src/com/zoho/crm/api/wizards/wizards_operations.rb +63 -0
  455. data/src/resources/JSONDetails.json +1 -0
  456. data/src/version.rb +3 -0
  457. metadata +597 -0
@@ -0,0 +1,927 @@
1
+ require 'json'
2
+ require 'monitor'
3
+
4
+ require_relative '../related_lists/related_lists_operations'
5
+ require_relative '../related_lists/related_list'
6
+ require_relative '../fields/fields_operations'
7
+ require_relative '../fields/field'
8
+ require_relative '../fields/response_wrapper'
9
+ require_relative '../fields/api_exception'
10
+ require_relative '../modules/module'
11
+ require_relative '../modules/modules_operations'
12
+ require_relative 'constants'
13
+ require_relative '../exception/sdk_exception'
14
+ require_relative '../../../api/logger/sdk_logger'
15
+
16
+ module ZOHOCRMSDK
17
+ module Util
18
+ # This class handles module field details.
19
+ class Utility
20
+ @@sync_lock = Monitor.new
21
+
22
+ @@apitype_vs_datatype = {}
23
+
24
+ @@apitype_vs_structurename = {}
25
+
26
+ @@new_file = false
27
+
28
+ @@get_modified_modules = false
29
+
30
+ @@api_supported_module = {}
31
+
32
+ @@module_api_name = nil
33
+
34
+ @@force_refresh = false
35
+ def self.set_handler_api_path(module_api_name, handler_instance)
36
+ if handler_instance.nil?
37
+ return
38
+ end
39
+ api_path = handler_instance.api_path
40
+ if api_path.downcase.include? module_api_name.downcase
41
+ api_path_splits = api_path.split('/')
42
+ i = 0
43
+ api_path_splits.each do |api_path_split|
44
+ split_lower = api_path_split.downcase
45
+ if split_lower == module_api_name.downcase
46
+ api_path_splits[i] = module_api_name
47
+ elsif (Constants::DEFAULT_MODULENAME_VS_APINAME.key? split_lower) && (!Constants::DEFAULT_MODULENAME_VS_APINAME[split_lower].nil?)
48
+ api_path_splits[i] = Constants::DEFAULT_MODULENAME_VS_APINAME[split_lower]
49
+ end
50
+ api_path = api_path_splits.join("/")
51
+ handler_instance.api_path = api_path
52
+ i += 1
53
+ end
54
+ end
55
+ end
56
+
57
+ def self.file_exists_flow(module_api_name, record_field_details_path, last_modified_time)
58
+ @@sync_lock.synchronize do
59
+ initializer = Initializer.get_initializer
60
+ record_field_details_json = JSON.parse(File.read(record_field_details_path))
61
+ last_modified_time_exists = false
62
+ if record_field_details_json.key?(Constants::FIELDS_LAST_MODIFIED_TIME) && !record_field_details_json[Constants::FIELDS_LAST_MODIFIED_TIME].nil?
63
+ if get_current_time_in_millis - record_field_details_json[Constants::FIELDS_LAST_MODIFIED_TIME] > 3_600_000
64
+ last_modified_time_exists = true
65
+ end
66
+ end
67
+ if !record_field_details_json.key?(Constants::FIELDS_LAST_MODIFIED_TIME) || @@force_refresh
68
+ last_modified_time_exists = true
69
+ end
70
+
71
+ if initializer.sdk_config.auto_refresh_fields && !@@new_file && !@@get_modified_modules && last_modified_time_exists
72
+ @@get_modified_modules = true
73
+ last_modified_time = (record_field_details_json.key? Constants::FIELDS_LAST_MODIFIED_TIME) ? record_field_details_json[Constants::FIELDS_LAST_MODIFIED_TIME] : nil
74
+ modify_fields(record_field_details_path, last_modified_time)
75
+ @@get_modified_modules = false
76
+ elsif !initializer.sdk_config.auto_refresh_fields && @@force_refresh && !@@get_modified_modules
77
+ @@get_modified_modules = true
78
+ modify_fields(record_field_details_path, last_modified_time)
79
+ @@get_modified_modules = false
80
+ end
81
+
82
+ record_field_details_json = JSON.parse(File.read(record_field_details_path))
83
+
84
+ return if module_api_name.nil? || (record_field_details_json.key?(module_api_name.downcase) && !record_field_details_json[module_api_name.downcase].nil?)
85
+
86
+ fill_data_type()
87
+
88
+ record_field_details_json[module_api_name.downcase] = {}
89
+
90
+ File.open(record_field_details_path, 'w') do |f|
91
+ f.write(record_field_details_json.to_json)
92
+ end
93
+ field_details = get_fields_details(module_api_name)
94
+ record_field_details_json = JSON.parse(File.read(record_field_details_path))
95
+
96
+ record_field_details_json[module_api_name.downcase] = field_details
97
+
98
+ File.open(record_field_details_path, 'w') do |f|
99
+ f.write(record_field_details_json.to_json)
100
+ end
101
+ end
102
+ end
103
+
104
+ def self.get_fields(module_api_name, handler_instance=nil)
105
+ @@sync_lock.synchronize do
106
+ @@module_api_name = module_api_name
107
+ get_fields_info(module_api_name,handler_instance)
108
+ end
109
+ end
110
+
111
+ def self.get_fields_info(module_api_name, handler_instance=nil)
112
+ require_relative '../initializer'
113
+ initializer = Initializer.get_initializer
114
+ record_field_details_path = nil
115
+ last_modified_time = nil
116
+
117
+ @@sync_lock.synchronize do
118
+ begin
119
+ return if !module_api_name.nil? && !search_json_details(module_api_name).nil?
120
+
121
+ resoures_folder_path = initializer.resources_path + '/' + Constants::RESOURCES
122
+
123
+ Dir.mkdir resoures_folder_path unless File.exist? resoures_folder_path
124
+ record_field_details_path = get_record_json_file_path()
125
+ module_api_name = verify_module_api_name(module_api_name)
126
+ set_handler_api_path(module_api_name,handler_instance)
127
+
128
+ return if !handler_instance.nil? && handler_instance.module_api_name.nil? && (!Constants::SKIP_MODULES.include? module_api_name.downcase)
129
+
130
+ if File.exist? record_field_details_path
131
+ file_exists_flow(module_api_name,record_field_details_path,last_modified_time)
132
+ elsif initializer.sdk_config.auto_refresh_fields
133
+ @@new_file = true
134
+ fill_data_type()
135
+ @@api_supported_module = @@api_supported_module.length == 0 ? get_modules(nil) : @@api_supported_module
136
+
137
+ record_field_details_json = File.exist? record_field_details_path ? JSON.parse(File.read(record_field_details_path)) : {}
138
+
139
+ record_field_details_json = { Constants::FIELDS_LAST_MODIFIED_TIME => get_current_time_in_millis }
140
+
141
+ if @@api_supported_module.length > 0
142
+ @@api_supported_module.each_key do |module_name|
143
+ unless record_field_details_json.key? module_name.downcase
144
+ record_field_details_json[module_name.downcase] = {}
145
+ File.open(record_field_details_path, 'w') do |f|
146
+ f.write(record_field_details_json.to_json)
147
+ end
148
+ field_details = get_fields_details( @@api_supported_module[module_name][Constants::API_NAME])
149
+ record_field_details_json = JSON.parse(File.read(record_field_details_path))
150
+ record_field_details_json[module_name.downcase] = field_details
151
+ File.open(record_field_details_path, 'w') do |f|
152
+ f.write(record_field_details_json.to_json)
153
+ end
154
+ end
155
+ end
156
+ end
157
+ @@new_file = false
158
+ elsif @@force_refresh && !@@get_modified_modules
159
+ @@get_modified_modules = true
160
+ record_field_details_json = {}
161
+ File.open(record_field_details_path, 'w') do |f|
162
+ f.write(record_field_details_json.to_json)
163
+ end
164
+ modify_fields(record_field_details_path, last_modified_time)
165
+ @@get_modified_modules = false
166
+ else
167
+ fill_data_type()
168
+
169
+ record_field_details_json = { module_api_name.downcase => {} }
170
+
171
+ File.open(record_field_details_path, 'w') do |f|
172
+ f.write(record_field_details_json.to_json)
173
+ end
174
+ field_details = get_fields_details(module_api_name)
175
+ record_field_details_json = JSON.parse(File.read(record_field_details_path))
176
+ record_field_details_json[module_api_name.downcase] = field_details
177
+
178
+ File.open(record_field_details_path, 'w') do |f|
179
+ f.write(record_field_details_json.to_json)
180
+ end
181
+ end
182
+ rescue StandardError => e
183
+ if !record_field_details_path.nil? && File.exist?(record_field_details_path)
184
+ begin
185
+ record_field_details_json = JSON.parse(File.read(record_field_details_path))
186
+ if record_field_details_json.key? module_api_name.downcase
187
+ record_field_details_json.delete(module_api_name.downcase)
188
+ end
189
+ if @@new_file
190
+ unless record_field_details_json[Constants::FIELDS_LAST_MODIFIED_TIME].nil?
191
+ record_field_details_json.delete(Constants::FIELDS_LAST_MODIFIED_TIME)
192
+ end
193
+ @@new_file = false
194
+ end
195
+ if @@get_modified_modules || @@force_refresh
196
+ @@get_modified_modules = false
197
+ @@force_refresh = false
198
+ unless last_modified_time.nil?
199
+ record_field_details_json[Constants::FIELDS_LAST_MODIFIED_TIME] = last_modified_time
200
+ end
201
+ end
202
+ File.open(record_field_details_path, 'w') do |f|
203
+ f.write(record_field_details_json.to_json)
204
+ end
205
+ rescue StandardError => e
206
+ exception = SDKException.new(nil, Constants::EXCEPTION, nil, e)
207
+ SDKLog::SDKLogger.severe(Constants::EXCEPTION, exception)
208
+ raise exception
209
+ end
210
+ end
211
+ ex = (e.class.to_s == 'SDKException') ? e : SDKException.new(nil, Constants::EXCEPTION, nil, e)
212
+ SDKLog::SDKLogger.severe(Constants::EXCEPTION, ex)
213
+ raise ex
214
+ end
215
+ end
216
+ end
217
+
218
+ def self.modify_fields(record_field_details_path, modified_time)
219
+ modified_modules = get_modules(modified_time)
220
+ record_field_details_json = JSON.parse(File.open(record_field_details_path).read)
221
+ record_field_details_json[Constants::FIELDS_LAST_MODIFIED_TIME] = get_current_time_in_millis()
222
+ File.open(record_field_details_path, 'w') do |f|
223
+ f.write(record_field_details_json.to_json)
224
+ end
225
+ return unless modified_modules.any?
226
+
227
+ modified_modules.each_key do |module_api_name|
228
+ if record_field_details_json.key? module_api_name.downcase
229
+ delete_fields(record_field_details_json, module_api_name)
230
+ end
231
+ end
232
+
233
+ File.open(record_field_details_path, 'w') do |f|
234
+ f.write(record_field_details_json.to_json)
235
+ end
236
+ modified_modules.each_key do |module_api_name|
237
+ module_data = modified_modules[module_api_name]
238
+ get_fields_info(module_data[Constants::API_NAME])
239
+ end
240
+ end
241
+
242
+ def self.verify_module_api_name(module_api_name)
243
+ if !module_api_name.nil?
244
+ if (Constants::DEFAULT_MODULENAME_VS_APINAME.key? module_api_name.downcase) && (!Constants::DEFAULT_MODULENAME_VS_APINAME[module_api_name.downcase].nil?)
245
+ return Constants::DEFAULT_MODULENAME_VS_APINAME[module_api_name.downcase]
246
+ end
247
+ end
248
+
249
+ record_field_details_path = get_record_json_file_path()
250
+
251
+ if File.exist? record_field_details_path
252
+ fields_json = JSON.parse(File.open(record_field_details_path).read)
253
+ if !fields_json.empty? && (fields_json.key? Constants::SDK_MODULE_METADATA) && (!module_api_name.nil? && (fields_json[Constants::SDK_MODULE_METADATA].key? module_api_name.downcase))
254
+ return fields_json[Constants::SDK_MODULE_METADATA][module_api_name.downcase][Constants::API_NAME]
255
+ end
256
+ end
257
+ return module_api_name
258
+ end
259
+
260
+ def self.delete_fields(record_field_details_json, module_api_name)
261
+ subform_modules = []
262
+
263
+ field_json = record_field_details_json[module_api_name.downcase]
264
+ field_json.each_key do |key|
265
+ if field_json[key].key?(Constants::SUBFORM) && field_json[key][Constants::SUBFORM]
266
+ if record_field_details_json.key? field_json[key][Constants::MODULE]
267
+ subform_modules.push(field_json[key][Constants::MODULE])
268
+ end
269
+ end
270
+ end
271
+ record_field_details_json.delete(module_api_name.downcase)
272
+ return unless subform_modules.any?
273
+
274
+ subform_modules.each do |subform_module|
275
+ delete_fields(record_field_details_json, subform_module)
276
+ end
277
+ end
278
+
279
+ def self.get_record_json_file_path()
280
+ Converter.new(nil).get_record_json_file_path()
281
+ end
282
+
283
+ def self.get_related_lists(related_module_name, module_api_name, common_api_handler)
284
+ require_relative '../initializer'
285
+
286
+ initializer = Initializer.get_initializer
287
+
288
+ @@sync_lock.synchronize do
289
+ begin
290
+ is_new_data = false
291
+ key = module_api_name + Constants::UNDERSCORE + Constants::RELATED_LISTS
292
+ key = key.downcase
293
+ resoures_folder_path = initializer.resources_path + '/' + Constants::RESOURCES
294
+ Dir.mkdir resoures_folder_path unless File.exist? resoures_folder_path
295
+
296
+ record_field_details_path = get_record_json_file_path()
297
+ if !File.exist?(record_field_details_path) || (File.exist?(record_field_details_path) && !(JSON.parse(File.read(record_field_details_path)).key? key))
298
+ is_new_data = true
299
+ module_api_name = verify_module_api_name(module_api_name)
300
+ related_list_values = get_related_list_details(module_api_name)
301
+ if File.exist? (record_field_details_path)
302
+ record_field_details_json = JSON.parse(File.read(record_field_details_path))
303
+ else
304
+ record_field_details_json = {}
305
+ end
306
+ record_field_details_json[key] = related_list_values
307
+ File.open(record_field_details_path, 'w') do |f|
308
+ f.write(record_field_details_json.to_json)
309
+ end
310
+ end
311
+ record_field_details_json = JSON.parse(File.read(record_field_details_path))
312
+ module_related_list = record_field_details_json[key]
313
+ if !check_related_list_exists(related_module_name, module_related_list, common_api_handler) && !is_new_data
314
+ record_field_details_json.delete(key)
315
+ File.open(record_field_details_path, 'w') do |f|
316
+ f.write(record_field_details_json.to_json)
317
+ end
318
+ get_related_lists(related_module_name, module_api_name, common_api_handler)
319
+ end
320
+ rescue SDKException => e
321
+ SDKLog::SDKLogger.severe(Constants::EXCEPTION, e)
322
+ raise e
323
+ rescue StandardError => e
324
+ ex = SDKException.new(nil, Constants::EXCEPTION, nil, e)
325
+ SDKLog::SDKLogger.severe(Constants::EXCEPTION, ex)
326
+ raise ex
327
+ end
328
+ end
329
+ end
330
+
331
+ def self.get_fields_details(module_api_name)
332
+ response = Fields::FieldsOperations.new(module_api_name).get_fields(nil)
333
+ fields_details = {}
334
+
335
+ unless response.nil?
336
+
337
+ return fields_details if response.status_code == Constants::RESPONSECODE_NO_CONTENT
338
+
339
+ if response.is_expected
340
+ data_object = response.data_object
341
+
342
+ if data_object.is_a? Fields::ResponseWrapper
343
+ fields = data_object.fields
344
+
345
+ fields.each do |field|
346
+ key_name = field.api_name
347
+ next if Constants::KEYS_TO_SKIP.include? key_name
348
+
349
+ field_detail = {}
350
+ set_data_type(field_detail, field, module_api_name)
351
+ fields_details[key_name] = field_detail
352
+ end
353
+ if Constants::INVENTORY_MODULES.include? module_api_name.downcase
354
+ field_detail = {}
355
+ field_detail[Constants::NAME] = Constants::LINE_TAX
356
+ field_detail[Constants::TYPE] = Constants::LIST_NAMESPACE
357
+ field_detail[Constants::STRUCTURE_NAME] = Constants::LINE_TAX_NAMESPACE
358
+ fields_details[Constants::LINE_TAX] = field_detail
359
+ end
360
+
361
+ if module_api_name.downcase == Constants::NOTES.downcase
362
+ field_detail = {}
363
+ field_detail[Constants::NAME] = Constants::ATTACHMENTS
364
+ field_detail[Constants::TYPE] = Constants::LIST_NAMESPACE
365
+ field_detail[Constants::STRUCTURE_NAME] = Constants::ATTACHMENTS_NAMESPACE
366
+ fields_details[Constants::ATTACHMENTS] = field_detail
367
+ end
368
+
369
+ elsif data_object.is_a? Fields::APIException
370
+ error_response = {}
371
+ error_response[Constants::CODE] = data_object.code.value
372
+ error_response[Constants::STATUS] = data_object.status.value
373
+ error_response[Constants::MESSAGE] = data_object.message.value
374
+ error_response[Constants::DETAILS] = data_object.details
375
+ exception = SDKException.new(Constants::API_EXCEPTION, nil, error_response)
376
+ if @@module_api_name == module_api_name.downcase
377
+ raise exception
378
+ end
379
+ SDKLog::SDKLogger.severe(Constants::EXCEPTION, exception)
380
+ end
381
+ else
382
+ error_response = {}
383
+ error_response[Constants::CODE] = response.status_code
384
+ raise SDKException.new(Constants::API_EXCEPTION, nil, error_response)
385
+ end
386
+ end
387
+ fields_details
388
+ end
389
+
390
+ def self.search_json_details(key)
391
+ require_relative '../initializer'
392
+
393
+ package_name = Constants::PACKAGE_PREFIX + 'record.' + key
394
+
395
+ Initializer.json_details.each_key do |class_key|
396
+ if class_key.downcase == package_name.downcase
397
+ return_json = {
398
+ Constants::MODULEPACKAGENAME => class_key,
399
+ Constants::MODULEDETAILS => Initializer.json_details[class_key]
400
+ }
401
+
402
+ return return_json
403
+ end
404
+ end
405
+ nil
406
+ end
407
+
408
+ def self.get_json_object(json, key)
409
+ json.each_key do |key_in_json|
410
+ return json[key_in_json] if key_in_json == key
411
+ end
412
+ nil
413
+ end
414
+
415
+ def self.fill_data_type
416
+ return unless @@apitype_vs_datatype.empty?
417
+
418
+ field_api_names_string = %w[autonumber textarea text website email phone mediumtext profileimage]
419
+ field_api_names_integer = %w[integer]
420
+ field_api_names_boolean = %w[boolean]
421
+ field_api_names_long = %w[bigint long]
422
+ field_api_names_double = %w[double percent lookup currency]
423
+ field_api_names_field_file = %w[fileupload]
424
+ field_api_names_datetime = %w[datetime event_reminder]
425
+ field_api_names_date = %w[date]
426
+ field_api_names_lookup = %w[lookup]
427
+ field_api_names_picklist = %w[picklist]
428
+ field_api_names_multiselect_picklist = %w[multiselectpicklist]
429
+ field_api_names_subform = %w[subform]
430
+ field_api_names_owner_lookup = %w[ownerlookup userlookup]
431
+ field_api_names_multiuser_lookup = %w[multiuserlookup]
432
+ field_api_names_multimodule_lookup = %w[multimodulelookup]
433
+ field_api_names_task_remind_at = %w[ALARM]
434
+ field_api_names_recurring_activity = %w[RRULE]
435
+ field_api_names_reminder = %w[multireminder]
436
+ field_api_names_consent_look_up = %w[consent_lookup]
437
+ field_api_name_image_upload = %w[imageupload]
438
+ field_api_name_multiselect_lookup = %w[multiselectlookup]
439
+ field_api_name_line_tax = %w[linetax]
440
+
441
+ field_api_names_string.each do |field_api_name|
442
+ @@apitype_vs_datatype[field_api_name] = Constants::STRING
443
+ end
444
+
445
+ field_api_names_integer.each do |field_api_name|
446
+ @@apitype_vs_datatype[field_api_name] = Constants::INTEGER
447
+ end
448
+
449
+ field_api_names_boolean.each do |field_api_name|
450
+ @@apitype_vs_datatype[field_api_name] = Constants::BOOLEAN
451
+ end
452
+
453
+ field_api_names_double.each do |field_api_name|
454
+ @@apitype_vs_datatype[field_api_name] = Constants::DOUBLE
455
+ end
456
+
457
+ field_api_names_long.each do |field_api_name|
458
+ @@apitype_vs_datatype[field_api_name] = Constants::LONG
459
+ end
460
+
461
+ field_api_names_field_file.each do |field_api_name|
462
+ @@apitype_vs_datatype[field_api_name] = Constants::LIST_NAMESPACE
463
+ @@apitype_vs_structurename[field_api_name] = Constants::FIELD_FILE_NAMESPACE
464
+ end
465
+
466
+ field_api_names_task_remind_at.each do |field_api_name|
467
+ @@apitype_vs_datatype[field_api_name] = Constants::REMINDAT_NAMESPACE
468
+ @@apitype_vs_structurename[field_api_name] = Constants::REMINDAT_NAMESPACE
469
+ end
470
+
471
+ field_api_names_recurring_activity.each do |field_api_name|
472
+ @@apitype_vs_datatype[field_api_name] = Constants::RECURRING_ACTIVITY_NAMESPACE
473
+ @@apitype_vs_structurename[field_api_name] = Constants::RECURRING_ACTIVITY_NAMESPACE
474
+ end
475
+
476
+ field_api_names_reminder.each do |field_api_name|
477
+ @@apitype_vs_datatype[field_api_name] = Constants::LIST_NAMESPACE
478
+ @@apitype_vs_structurename[field_api_name] = Constants::REMINDER_NAMESPACE
479
+ end
480
+
481
+ field_api_names_datetime.each do |field_api_name|
482
+ @@apitype_vs_datatype[field_api_name] = Constants::DATETIME_NAMESPACE
483
+ end
484
+
485
+ field_api_names_date.each do |field_api_name|
486
+ @@apitype_vs_datatype[field_api_name] = Constants::DATE_NAMESPACE
487
+ end
488
+
489
+ field_api_names_lookup.each do |field_api_name|
490
+ @@apitype_vs_datatype[field_api_name] = Constants::RECORD_NAMESPACE
491
+
492
+ @@apitype_vs_structurename[field_api_name] = Constants::RECORD_NAMESPACE
493
+ end
494
+
495
+ field_api_names_owner_lookup.each do |field_api_name|
496
+ @@apitype_vs_datatype[field_api_name] = Constants::USER_NAMESPACE
497
+
498
+ @@apitype_vs_structurename[field_api_name] = Constants::USER_NAMESPACE
499
+ end
500
+
501
+ field_api_names_multiuser_lookup.each do |field_api_name|
502
+ @@apitype_vs_datatype[field_api_name] = Constants::LIST_NAMESPACE
503
+
504
+ @@apitype_vs_structurename[field_api_name] = Constants::RECORD_NAMESPACE
505
+ end
506
+
507
+ field_api_names_multimodule_lookup.each do |field_api_name|
508
+ @@apitype_vs_datatype[field_api_name] = Constants::LIST_NAMESPACE
509
+
510
+ @@apitype_vs_structurename[field_api_name] = Constants::MODULE_NAMESPACE
511
+ end
512
+
513
+ field_api_names_picklist.each do |field_api_name|
514
+ @@apitype_vs_datatype[field_api_name] = Constants::CHOICE_NAMESPACE
515
+ end
516
+
517
+ field_api_names_multiselect_picklist.each do |field_api_name|
518
+ @@apitype_vs_datatype[field_api_name] = Constants::LIST_NAMESPACE
519
+
520
+ @@apitype_vs_structurename[field_api_name] = Constants::CHOICE_NAMESPACE
521
+ end
522
+
523
+ field_api_names_subform.each do |field_api_name|
524
+ @@apitype_vs_datatype[field_api_name] = Constants::LIST_NAMESPACE
525
+
526
+ @@apitype_vs_structurename[field_api_name] = Constants::RECORD_NAMESPACE
527
+ end
528
+
529
+ field_api_names_consent_look_up.each do |field_api_name|
530
+ @@apitype_vs_datatype[field_api_name] = Constants::CONSENT_NAMESPACE
531
+
532
+ @@apitype_vs_structurename[field_api_name] = Constants::CONSENT_NAMESPACE
533
+ end
534
+
535
+ field_api_name_image_upload.each do |field_api_name|
536
+ @@apitype_vs_datatype[field_api_name] = Constants::LIST_NAMESPACE
537
+
538
+ @@apitype_vs_structurename[field_api_name] = Constants::IMAGEUPLOAD_NAMESPACE
539
+ end
540
+
541
+ field_api_name_multiselect_lookup.each do |field_api_name|
542
+ @@apitype_vs_datatype[field_api_name] = Constants::LIST_NAMESPACE
543
+
544
+ @@apitype_vs_structurename[field_api_name] = Constants::RECORD_NAMESPACE
545
+ end
546
+
547
+ field_api_name_line_tax.each do |field_api_name|
548
+ @@apitype_vs_datatype[field_api_name] = Constants::LIST_NAMESPACE
549
+
550
+ @@apitype_vs_structurename[field_api_name] = Constants::LINE_TAX_NAMESPACE
551
+ end
552
+ end
553
+
554
+ def self.set_data_type(field_detail, field_instance, module_api_name)
555
+ data_type = field_instance.data_type
556
+
557
+ key_name = field_instance.api_name
558
+
559
+ module_name = ''
560
+
561
+ module_api_name = module_api_name.downcase
562
+ if !field_instance.system_mandatory.nil? && field_instance.system_mandatory && !((module_api_name == Constants::CALLS.downcase) && (key_name.downcase == Constants::CALL_DURATION.downcase))
563
+ field_detail[Constants::REQUIRED] = true
564
+ end
565
+
566
+ if (key_name.downcase == Constants::PRICING_DETAILS.downcase) && (module_api_name == Constants::PRICE_BOOKS.downcase)
567
+ field_detail[Constants::NAME] = key_name
568
+ field_detail[Constants::TYPE] = Constants::LIST_NAMESPACE
569
+ field_detail[Constants::STRUCTURE_NAME] = Constants::PRICINGDETAILS
570
+ field_detail[Constants::SKIP_MANDATORY] = true
571
+ return
572
+ elsif (key_name.downcase == Constants::PARTICIPANT_API_NAME.downcase) && ((module_api_name == Constants::EVENTS.downcase) || (module_api_name == Constants::ACTIVITIES.downcase))
573
+ field_detail[Constants::NAME] = key_name
574
+ field_detail[Constants::TYPE] = Constants::LIST_NAMESPACE
575
+ field_detail[Constants::STRUCTURE_NAME] = Constants::PARTICIPANTS
576
+ field_detail[Constants::SKIP_MANDATORY] = true
577
+ return
578
+ elsif (key_name.downcase == Constants::COMMENTS.downcase) && ((module_api_name == Constants::SOLUTIONS.downcase) || (module_api_name == Constants::CASES.downcase))
579
+ field_detail[Constants::NAME] = key_name
580
+ field_detail[Constants::TYPE] = Constants::LIST_NAMESPACE
581
+ field_detail[Constants::STRUCTURE_NAME] = Constants::COMMENTS_NAMESPACE
582
+ field_detail[Constants::LOOKUP] = true
583
+ return
584
+ elsif key_name.downcase == Constants::LAYOUT.downcase
585
+ field_detail[Constants::NAME] = key_name
586
+ field_detail[Constants::TYPE] = Constants::LAYOUT_NAMESPACE
587
+ field_detail[Constants::LOOKUP] = true
588
+ field_detail[Constants::STRUCTURE_NAME] = Constants::LAYOUT_NAMESPACE
589
+ return
590
+ elsif (key_name.downcase() == Constants::TERRITORIES.downcase or key_name.downcase() == Constants::TERRITORY.downcase) and !field_instance.custom_field.nil? and !field_instance.custom_field
591
+ field_detail[Constants::NAME] = key_name
592
+ field_detail[Constants::TYPE] = Constants::LIST_NAMESPACE
593
+ field_detail[Constants::STRUCTURE_NAME] = Constants::TERRITORY_NAMESPACE
594
+ field_detail[Constants::LOOKUP] = true
595
+ return
596
+ elsif key_name.downcase() == Constants::PRODUCT_NAME.downcase and Constants::INVENTORY_MODULES_ITEMS.include? module_api_name.downcase
597
+ field_detail[Constants::NAME] = key_name
598
+ field_detail[Constants::TYPE] = Constants::LINEITEM_PRODUCT
599
+ field_detail[Constants::STRUCTURE_NAME] = Constants::LINEITEM_PRODUCT
600
+ field_detail[Constants::SKIP_MANDATORY] = true
601
+ return
602
+ elsif key_name.downcase() == Constants::DISCOUNT.downcase and Constants::INVENTORY_MODULES_ITEMS.include? module_api_name.downcase
603
+ field_detail[Constants::NAME] = key_name
604
+ field_detail[Constants::TYPE] = Constants::STRING
605
+ return
606
+ elsif key_name.downcase() == Constants::TAX.downcase and module_api_name.downcase() == Constants::PRODUCTS.downcase
607
+ field_detail[Constants::NAME] = key_name
608
+ field_detail[Constants::TYPE] = Constants::LIST_NAMESPACE
609
+ field_detail[Constants::STRUCTURE_NAME] = Constants::TAX_NAMESPACE
610
+ return
611
+ elsif @@apitype_vs_datatype.include? data_type
612
+ field_detail[Constants::TYPE] = @@apitype_vs_datatype[data_type]
613
+ elsif data_type.downcase == Constants::FORMULA.downcase
614
+ unless field_instance.formula.nil?
615
+ return_type = field_instance.formula.return_type
616
+ unless @@apitype_vs_datatype[return_type].nil?
617
+ field_detail[Constants::TYPE] = @@apitype_vs_datatype[return_type]
618
+ end
619
+ field_detail[Constants::READ_ONLY] = true
620
+ end
621
+ else
622
+ return
623
+ end
624
+ field_detail[Constants::LOOKUP] = true if data_type.downcase.include? Constants::LOOKUP
625
+ if (data_type.downcase.include? Constants::CONSENT_LOOKUP) || (data_type.downcase.include? Constants::OWNER_LOOKUP)
626
+ field_detail[Constants::SKIP_MANDATORY] = true
627
+ end
628
+
629
+ if data_type.downcase.include? Constants::MULTI_SELECT_LOOKUP
630
+ field_detail[Constants::SKIP_MANDATORY] = true
631
+ if !field_instance.multiselectlookup.nil?
632
+ if !field_instance.multiselectlookup.linking_module.nil?
633
+ linking_module = field_instance.multiselectlookup.linking_module
634
+ field_detail[Constants::MODULE] = linking_module
635
+ module_name = linking_module
636
+ end
637
+ end
638
+ field_detail[Constants::SUBFORM] = true
639
+ end
640
+
641
+ if data_type.downcase.include? Constants::MULTI_USER_LOOKUP
642
+ field_detail[Constants::SKIP_MANDATORY] = true
643
+ if !field_instance.multiuserlookup.nil?
644
+ if !field_instance.multiuserlookup.linking_module.nil?
645
+ linking_module = field_instance.multiuserlookup.linking_module
646
+ field_detail[Constants::MODULE] = linking_module
647
+ module_name = linking_module
648
+ end
649
+ end
650
+ field_detail[Constants::SUBFORM] = true
651
+ end
652
+
653
+ if @@apitype_vs_structurename.include? data_type
654
+ field_detail[Constants::STRUCTURE_NAME] = @@apitype_vs_structurename[data_type]
655
+ end
656
+
657
+ if (field_instance.data_type.downcase == Constants::PICKLIST.downcase) && !field_instance.pick_list_values.nil? && !field_instance.pick_list_values.empty?
658
+ values = []
659
+
660
+ field_instance.pick_list_values.each do |pick_list_value|
661
+ values.push(pick_list_value.display_value)
662
+ end
663
+ field_detail[Constants::PICKLIST] = true
664
+ field_detail[Constants::VALUES] = values
665
+ end
666
+
667
+ if data_type.downcase == Constants::SUBFORM.downcase
668
+ module_name = field_instance.subform.module
669
+ field_detail[Constants::SUBFORM] = true
670
+ field_detail[Constants::SKIP_MANDATORY] = true
671
+ field_detail[Constants::MODULE] = module_name
672
+ end
673
+
674
+ if data_type.downcase == Constants::LOOKUP.downcase && !field_instance.lookup.nil?
675
+ module_name = field_instance.lookup.module
676
+ if !module_name.nil? && (module_name.downcase != Constants::SE_MODULE.downcase)
677
+ field_detail[Constants::MODULE] = module_name
678
+ if (module_name.downcase == Constants::ACCOUNTS.downcase) && !field_instance.custom_field
679
+ field_detail[Constants::SKIP_MANDATORY] = true
680
+ end
681
+ else
682
+ module_name = ''
683
+ end
684
+ field_detail[Constants::LOOKUP] = true
685
+ end
686
+ get_fields_info(module_name) if !module_name.nil? && !module_name.empty?
687
+ field_detail[Constants::NAME] = key_name
688
+ end
689
+
690
+ def self.get_modules(header)
691
+ api_names = {}
692
+ header_map = HeaderMap.new
693
+ unless header.nil?
694
+ header_value = Time.at(header.to_i / 1000).iso8601
695
+ header_map.add(Modules::ModulesOperations::GetModulesHeader.If_modified_since, DateTime.parse(header_value))
696
+ end
697
+ response = Modules::ModulesOperations.new.get_modules(header_map)
698
+
699
+ unless response.nil?
700
+ if [Constants::RESPONSECODE_NO_CONTENT, Constants::RESPONSECODE_NOT_MODIFIED].include? response.status_code
701
+ return api_names
702
+ end
703
+
704
+ if response.is_expected
705
+ response_object = response.data_object
706
+ if response_object.is_a? Modules::ResponseWrapper
707
+ modules = response_object.modules
708
+ modules.each do |module_ins|
709
+ if module_ins.api_supported
710
+ module_details = {}
711
+ module_details[Constants::API_NAME] = module_ins.api_name
712
+ module_details[Constants::GENERATED_TYPE] = module_ins.generated_type.value
713
+ api_names[module_ins.api_name.downcase] = module_details
714
+ end
715
+ end
716
+ elsif response_object.is_a? Modules::APIException
717
+ error_response = {}
718
+ error_response[Constants::CODE] = response_object.code.value
719
+ error_response[Constants::STATUS] = response_object.status.value
720
+ error_response[Constants::MESSAGE] = response_object.message.value
721
+ raise SDKException.new(Constants::API_EXCEPTION, nil, error_response)
722
+ end
723
+ end
724
+ end
725
+ if header.nil?
726
+ begin
727
+ initializer = Initializer.get_initializer
728
+ resoures_folder_path = initializer.resources_path + '/' + Constants::RESOURCES
729
+ Dir.mkdir resoures_folder_path unless File.exist? resoures_folder_path
730
+ record_field_details_path = get_record_json_file_path()
731
+ write_module_meta_data(record_field_details_path, api_names)
732
+ end
733
+ end
734
+ api_names
735
+ end
736
+
737
+ def self.check_related_list_exists(related_module_name, module_related_list_ja, common_api_handler)
738
+ (0..module_related_list_ja.length - 1).each do |i|
739
+ related_list_jo = module_related_list_ja[i]
740
+ if !related_list_jo[Constants::API_NAME].nil? && (related_list_jo[Constants::API_NAME].downcase == related_module_name.downcase)
741
+ if related_list_jo[Constants::HREF] == Constants::NULL_VALUE
742
+ raise SDKException.new(Constants::UNSUPPORTED_IN_API, common_api_handler.http_method + ' ' + common_api_handler.api_path + Constants::UNSUPPORTED_IN_API_MESSAGE)
743
+ end
744
+
745
+ if related_list_jo[Constants::MODULE] != Constants::NULL_VALUE
746
+ common_api_handler.module_api_name = related_list_jo[Constants::MODULE]
747
+ get_fields_info(related_list_jo[Constants::MODULE], common_api_handler)
748
+ end
749
+ return true
750
+ end
751
+ end
752
+ false
753
+ end
754
+
755
+ def self.verify_photo_support(module_api_name)
756
+ @@sync_lock.synchronize do
757
+ begin
758
+ module_api_name = verify_module_api_name(module_api_name)
759
+ if Constants::PHOTO_SUPPORTED_MODULES.include? module_api_name.downcase
760
+ return true
761
+ end
762
+ modules = get_module_names()
763
+
764
+ if modules.key? module_api_name.downcase || !modules[module_api_name.downcase].nil?
765
+ module_meta_data = modules[module_api_name.downcase]
766
+
767
+ if module_meta_data.key? Constants::GENERATED_TYPE && module_meta_data[Constants::GENERATED_TYPE] != Constants::GENERATED_TYPE_CUSTOM
768
+ raise SDKException.new(Constants::UPLOAD_PHOTO_UNSUPPORTED_ERROR,Constants::UPLOAD_PHOTO_UNSUPPORTED_MESSAGE + module_api_name)
769
+ end
770
+ end
771
+ rescue SDKException => e
772
+ raise e
773
+ rescue StandardError => e
774
+ ex = SDKException.new(nil, Constants::EXCEPTION, nil, e)
775
+ SDKLog::SDKLogger.severe(Constants::EXCEPTION, ex)
776
+ raise ex
777
+ end
778
+ return true
779
+ end
780
+ end
781
+
782
+ def self.get_module_names()
783
+ module_data = {}
784
+ initializer = Initializer.get_initializer
785
+ resoures_folder_path = initializer.resources_path + '/' + Constants::RESOURCES
786
+ Dir.mkdir resoures_folder_path unless File.exist? resoures_folder_path
787
+
788
+ record_field_details_path = get_record_json_file_path()
789
+
790
+ call_get_modules = false
791
+ if File.exists? record_field_details_path
792
+ json = JSON.parse(File.read(record_field_details_path))
793
+ if !json.key? Constants::SDK_MODULE_METADATA
794
+ call_get_modules = true
795
+ elsif json[Constants::SDK_MODULE_METADATA].nil? || json[Constants::SDK_MODULE_METADATA].length == 0
796
+ call_get_modules = true
797
+ end
798
+ else
799
+ call_get_modules = true
800
+ end
801
+ if call_get_modules
802
+ module_data = get_modules(nil)
803
+ write_module_meta_data(record_field_details_path, module_data)
804
+ return module_data
805
+ end
806
+ record_field_details_json = JSON.parse(File.read(record_field_details_path))
807
+ module_data = record_field_details_json[Constants::SDK_MODULE_METADATA]
808
+ return module_data
809
+ end
810
+
811
+ def self.write_module_meta_data(record_field_details_path, module_data)
812
+ field_details_json = (File.exist? record_field_details_path) ? JSON.parse(File.read(record_field_details_path)):{}
813
+ field_details_json[Constants::SDK_MODULE_METADATA] = module_data
814
+ File.open(record_field_details_path, 'w') do |f|
815
+ f.write(field_details_json.to_json)
816
+ end
817
+ end
818
+
819
+ def self.get_related_list_details(module_api_name)
820
+ rlo = RelatedLists::RelatedListsOperations.new(module_api_name)
821
+ response = rlo.get_related_lists
822
+ related_lists_ja = []
823
+ unless response.nil?
824
+ return related_lists_ja if response.status_code == Constants::RESPONSECODE_NO_CONTENT
825
+
826
+ if response.is_expected
827
+ response_handler = response.data_object
828
+ if response_handler.is_a? RelatedLists::ResponseWrapper
829
+ response_wrapper = response_handler
830
+ related_lists = response_wrapper.related_lists
831
+ related_lists.each do |related_list|
832
+ related_list_detail = {}
833
+ related_list_detail[Constants::API_NAME] = related_list.api_name
834
+ related_list_detail[Constants::MODULE] = related_list.module.nil? ? Constants::NULL_VALUE : related_list.module
835
+ related_list_detail[Constants::NAME] = related_list.name
836
+ related_list_detail[Constants::HREF] = related_list.href.nil? ? Constants::NULL_VALUE : related_list.href
837
+ related_lists_ja.push(related_list_detail)
838
+ end
839
+ elsif response_handler.is_a? RelatedLists::APIException
840
+ exception = response_handler
841
+ error_response = {}
842
+ error_response[Constants::CODE] = exception.code.value
843
+ error_response[Constants::STATUS] = exception.status.value
844
+ error_response[Constants::MESSAGE] = exception.message.value
845
+ raise SDKException.new(Constants::API_EXCEPTION, nil, error_response)
846
+ end
847
+ else
848
+ error_response = {}
849
+ error_response[Constants::CODE] = response.status_code
850
+ raise SDKException.new(Constants::API_EXCEPTION, nil, error_response)
851
+ end
852
+ end
853
+ related_lists_ja
854
+ end
855
+
856
+ def self.get_current_time_in_millis
857
+ (Time.now.to_f * 1000).to_i
858
+ end
859
+
860
+ def self.refresh_modules
861
+ @@force_refresh = true
862
+ get_fields_info(nil)
863
+ @@force_refresh = false
864
+ end
865
+
866
+ def self.classname_to_filename(class_name)
867
+ changed_class_name = ''
868
+ camel_case_split = (class_name.to_s.split(/([[:upper:]][[:lower:]]+)/)).delete_if(&:empty?)
869
+ camel_case_split.each_with_index do |each_name, i|
870
+ changed_class_name += Constants::UNDERSCORE if i.positive?
871
+ changed_class_name += each_name.to_s.downcase
872
+ end
873
+
874
+ changed_class_name
875
+ end
876
+
877
+ def self.class_to_load(class_path)
878
+ package_to_load = 'ZOHOCRMSDK::'
879
+
880
+ class_path = class_path.to_s
881
+
882
+ split_names = class_path.split(Constants::DOT)
883
+
884
+ package_name_split = split_names[-2].to_s.split(Constants::UNDERSCORE)
885
+
886
+ package_name_split.each do |name|
887
+ name[0] = name[0].to_s.upcase
888
+ package_to_load += name
889
+ end
890
+
891
+ package_to_load += Constants::DOUBLE_COLON
892
+
893
+ package_to_load += split_names[-1]
894
+
895
+ package_to_load
896
+ end
897
+
898
+ def self.path_to_package(class_path)
899
+ if class_path.to_s.include? Constants::DOUBLE_COLON
900
+ name = Constants::PACKAGE_PREFIX
901
+ class_path = class_path.to_s
902
+ class_split = class_path.to_s.split(Constants::DOUBLE_COLON)
903
+ class_split[1] = classname_to_filename(class_split[1])
904
+ name += class_split[1] + Constants::DOT + class_split[2]
905
+ name
906
+ else
907
+ class_path
908
+ end
909
+ end
910
+
911
+ def self.check_data_type(value,type)
912
+ if value.nil?
913
+ return false
914
+ end
915
+ if type.downcase == Constants::OBJECT.downcase
916
+ return true
917
+ end
918
+ type = Constants::DATA_TYPE[type].downcase
919
+ class_name = value.class.name.downcase
920
+ if type == Constants::BOOLEAN.downcase
921
+ class_name = ([true, false].include? value) ? Constants::BOOLEAN.downcase : class_name
922
+ end
923
+ class_name == type
924
+ end
925
+ end
926
+ end
927
+ end