ZCRMSDK 1.0.2 → 3.0.0.beta

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