ZCRMSDK 1.0.2 → 2.1.0

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