ZOHOCRMSDK2_1 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (457) hide show
  1. checksums.yaml +7 -0
  2. data/src/ZOHOCRMSDK2_1.rb +453 -0
  3. data/src/com/zoho/api/authenticator/oauth_token.rb +285 -0
  4. data/src/com/zoho/api/authenticator/store/db_store.rb +193 -0
  5. data/src/com/zoho/api/authenticator/store/file_store.rb +239 -0
  6. data/src/com/zoho/api/authenticator/store/token_store.rb +35 -0
  7. data/src/com/zoho/api/authenticator/token.rb +12 -0
  8. data/src/com/zoho/api/logger/sdk_logger.rb +80 -0
  9. data/src/com/zoho/crm/api/assignment_rules/api_exception.rb +123 -0
  10. data/src/com/zoho/crm/api/assignment_rules/assignment_rule.rb +217 -0
  11. data/src/com/zoho/crm/api/assignment_rules/assignment_rules_operations.rb +63 -0
  12. data/src/com/zoho/crm/api/assignment_rules/default_user.rb +82 -0
  13. data/src/com/zoho/crm/api/assignment_rules/response_handler.rb +12 -0
  14. data/src/com/zoho/crm/api/assignment_rules/response_wrapper.rb +65 -0
  15. data/src/com/zoho/crm/api/attachments/action_handler.rb +12 -0
  16. data/src/com/zoho/crm/api/attachments/action_response.rb +12 -0
  17. data/src/com/zoho/crm/api/attachments/action_wrapper.rb +65 -0
  18. data/src/com/zoho/crm/api/attachments/api_exception.rb +127 -0
  19. data/src/com/zoho/crm/api/attachments/attachment.rb +407 -0
  20. data/src/com/zoho/crm/api/attachments/attachments_operations.rb +198 -0
  21. data/src/com/zoho/crm/api/attachments/file_body_wrapper.rb +66 -0
  22. data/src/com/zoho/crm/api/attachments/response_handler.rb +12 -0
  23. data/src/com/zoho/crm/api/attachments/response_wrapper.rb +85 -0
  24. data/src/com/zoho/crm/api/attachments/success_response.rb +123 -0
  25. data/src/com/zoho/crm/api/blue_print/action_response.rb +12 -0
  26. data/src/com/zoho/crm/api/blue_print/api_exception.rb +125 -0
  27. data/src/com/zoho/crm/api/blue_print/blue_print.rb +121 -0
  28. data/src/com/zoho/crm/api/blue_print/blue_print_operations.rb +69 -0
  29. data/src/com/zoho/crm/api/blue_print/body_wrapper.rb +63 -0
  30. data/src/com/zoho/crm/api/blue_print/escalation.rb +82 -0
  31. data/src/com/zoho/crm/api/blue_print/field.rb +1129 -0
  32. data/src/com/zoho/crm/api/blue_print/next_transition.rb +120 -0
  33. data/src/com/zoho/crm/api/blue_print/process_info.rb +253 -0
  34. data/src/com/zoho/crm/api/blue_print/response_handler.rb +12 -0
  35. data/src/com/zoho/crm/api/blue_print/response_wrapper.rb +65 -0
  36. data/src/com/zoho/crm/api/blue_print/success_response.rb +123 -0
  37. data/src/com/zoho/crm/api/blue_print/transition.rb +273 -0
  38. data/src/com/zoho/crm/api/blue_print/validation_error.rb +139 -0
  39. data/src/com/zoho/crm/api/bulk_read/action_handler.rb +12 -0
  40. data/src/com/zoho/crm/api/bulk_read/action_response.rb +12 -0
  41. data/src/com/zoho/crm/api/bulk_read/action_wrapper.rb +84 -0
  42. data/src/com/zoho/crm/api/bulk_read/api_exception.rb +127 -0
  43. data/src/com/zoho/crm/api/bulk_read/bulk_read_operations.rb +76 -0
  44. data/src/com/zoho/crm/api/bulk_read/call_back.rb +83 -0
  45. data/src/com/zoho/crm/api/bulk_read/criteria.rb +157 -0
  46. data/src/com/zoho/crm/api/bulk_read/file_body_wrapper.rb +66 -0
  47. data/src/com/zoho/crm/api/bulk_read/job_detail.rb +198 -0
  48. data/src/com/zoho/crm/api/bulk_read/query.rb +140 -0
  49. data/src/com/zoho/crm/api/bulk_read/request_wrapper.rb +102 -0
  50. data/src/com/zoho/crm/api/bulk_read/response_handler.rb +12 -0
  51. data/src/com/zoho/crm/api/bulk_read/response_wrapper.rb +65 -0
  52. data/src/com/zoho/crm/api/bulk_read/result.rb +139 -0
  53. data/src/com/zoho/crm/api/bulk_read/success_response.rb +123 -0
  54. data/src/com/zoho/crm/api/bulk_write/action_response.rb +12 -0
  55. data/src/com/zoho/crm/api/bulk_write/api_exception.rb +241 -0
  56. data/src/com/zoho/crm/api/bulk_write/bulk_write_operations.rb +114 -0
  57. data/src/com/zoho/crm/api/bulk_write/bulk_write_response.rb +218 -0
  58. data/src/com/zoho/crm/api/bulk_write/call_back.rb +83 -0
  59. data/src/com/zoho/crm/api/bulk_write/field_mapping.rb +158 -0
  60. data/src/com/zoho/crm/api/bulk_write/file.rb +159 -0
  61. data/src/com/zoho/crm/api/bulk_write/file_body_wrapper.rb +66 -0
  62. data/src/com/zoho/crm/api/bulk_write/request_wrapper.rb +121 -0
  63. data/src/com/zoho/crm/api/bulk_write/resource.rb +217 -0
  64. data/src/com/zoho/crm/api/bulk_write/response_handler.rb +12 -0
  65. data/src/com/zoho/crm/api/bulk_write/response_wrapper.rb +12 -0
  66. data/src/com/zoho/crm/api/bulk_write/result.rb +63 -0
  67. data/src/com/zoho/crm/api/bulk_write/success_response.rb +123 -0
  68. data/src/com/zoho/crm/api/contact_roles/action_handler.rb +12 -0
  69. data/src/com/zoho/crm/api/contact_roles/action_response.rb +12 -0
  70. data/src/com/zoho/crm/api/contact_roles/action_wrapper.rb +65 -0
  71. data/src/com/zoho/crm/api/contact_roles/api_exception.rb +131 -0
  72. data/src/com/zoho/crm/api/contact_roles/body_wrapper.rb +63 -0
  73. data/src/com/zoho/crm/api/contact_roles/contact_role.rb +101 -0
  74. data/src/com/zoho/crm/api/contact_roles/contact_role_wrapper.rb +63 -0
  75. data/src/com/zoho/crm/api/contact_roles/contact_roles_operations.rb +281 -0
  76. data/src/com/zoho/crm/api/contact_roles/record_action_handler.rb +12 -0
  77. data/src/com/zoho/crm/api/contact_roles/record_action_wrapper.rb +65 -0
  78. data/src/com/zoho/crm/api/contact_roles/record_body_wrapper.rb +63 -0
  79. data/src/com/zoho/crm/api/contact_roles/record_response_handler.rb +12 -0
  80. data/src/com/zoho/crm/api/contact_roles/record_response_wrapper.rb +86 -0
  81. data/src/com/zoho/crm/api/contact_roles/response_handler.rb +12 -0
  82. data/src/com/zoho/crm/api/contact_roles/response_wrapper.rb +65 -0
  83. data/src/com/zoho/crm/api/contact_roles/success_response.rb +123 -0
  84. data/src/com/zoho/crm/api/currencies/action_handler.rb +12 -0
  85. data/src/com/zoho/crm/api/currencies/action_response.rb +12 -0
  86. data/src/com/zoho/crm/api/currencies/action_wrapper.rb +65 -0
  87. data/src/com/zoho/crm/api/currencies/api_exception.rb +129 -0
  88. data/src/com/zoho/crm/api/currencies/base_currency_action_handler.rb +12 -0
  89. data/src/com/zoho/crm/api/currencies/base_currency_action_wrapper.rb +65 -0
  90. data/src/com/zoho/crm/api/currencies/base_currency_wrapper.rb +63 -0
  91. data/src/com/zoho/crm/api/currencies/body_wrapper.rb +63 -0
  92. data/src/com/zoho/crm/api/currencies/currencies_operations.rb +158 -0
  93. data/src/com/zoho/crm/api/currencies/currency.rb +292 -0
  94. data/src/com/zoho/crm/api/currencies/format.rb +102 -0
  95. data/src/com/zoho/crm/api/currencies/response_handler.rb +12 -0
  96. data/src/com/zoho/crm/api/currencies/response_wrapper.rb +65 -0
  97. data/src/com/zoho/crm/api/currencies/success_response.rb +123 -0
  98. data/src/com/zoho/crm/api/custom_views/api_exception.rb +123 -0
  99. data/src/com/zoho/crm/api/custom_views/criteria.rb +138 -0
  100. data/src/com/zoho/crm/api/custom_views/custom_view.rb +407 -0
  101. data/src/com/zoho/crm/api/custom_views/custom_views_operations.rb +77 -0
  102. data/src/com/zoho/crm/api/custom_views/info.rb +158 -0
  103. data/src/com/zoho/crm/api/custom_views/range.rb +82 -0
  104. data/src/com/zoho/crm/api/custom_views/response_handler.rb +12 -0
  105. data/src/com/zoho/crm/api/custom_views/response_wrapper.rb +84 -0
  106. data/src/com/zoho/crm/api/custom_views/shared_to.rb +120 -0
  107. data/src/com/zoho/crm/api/custom_views/translation.rb +120 -0
  108. data/src/com/zoho/crm/api/dc/au_datacenter.rb +21 -0
  109. data/src/com/zoho/crm/api/dc/cn_datacenter.rb +21 -0
  110. data/src/com/zoho/crm/api/dc/datacenter.rb +23 -0
  111. data/src/com/zoho/crm/api/dc/eu_datacenter.rb +21 -0
  112. data/src/com/zoho/crm/api/dc/in_datacenter.rb +21 -0
  113. data/src/com/zoho/crm/api/dc/us_datacenter.rb +21 -0
  114. data/src/com/zoho/crm/api/email_templates/api_exception.rb +123 -0
  115. data/src/com/zoho/crm/api/email_templates/attachment.rb +120 -0
  116. data/src/com/zoho/crm/api/email_templates/email_template.rb +392 -0
  117. data/src/com/zoho/crm/api/email_templates/email_templates_operations.rb +63 -0
  118. data/src/com/zoho/crm/api/email_templates/response_handler.rb +12 -0
  119. data/src/com/zoho/crm/api/email_templates/response_wrapper.rb +85 -0
  120. data/src/com/zoho/crm/api/exception/sdk_exception.rb +49 -0
  121. data/src/com/zoho/crm/api/field_attachments/api_exception.rb +123 -0
  122. data/src/com/zoho/crm/api/field_attachments/body_wrapper.rb +64 -0
  123. data/src/com/zoho/crm/api/field_attachments/field_attachments_operations.rb +54 -0
  124. data/src/com/zoho/crm/api/field_attachments/file_body_wrapper.rb +66 -0
  125. data/src/com/zoho/crm/api/field_attachments/response_handler.rb +12 -0
  126. data/src/com/zoho/crm/api/fields/api_exception.rb +123 -0
  127. data/src/com/zoho/crm/api/fields/association_details.rb +82 -0
  128. data/src/com/zoho/crm/api/fields/auto_number.rb +101 -0
  129. data/src/com/zoho/crm/api/fields/crypt.rb +158 -0
  130. data/src/com/zoho/crm/api/fields/currency.rb +82 -0
  131. data/src/com/zoho/crm/api/fields/external.rb +101 -0
  132. data/src/com/zoho/crm/api/fields/field.rb +1131 -0
  133. data/src/com/zoho/crm/api/fields/fields_operations.rb +73 -0
  134. data/src/com/zoho/crm/api/fields/formula.rb +82 -0
  135. data/src/com/zoho/crm/api/fields/history_tracking.rb +82 -0
  136. data/src/com/zoho/crm/api/fields/lookup_field.rb +82 -0
  137. data/src/com/zoho/crm/api/fields/maps.rb +82 -0
  138. data/src/com/zoho/crm/api/fields/module.rb +159 -0
  139. data/src/com/zoho/crm/api/fields/multi_module_lookup.rb +101 -0
  140. data/src/com/zoho/crm/api/fields/multi_select_lookup.rb +177 -0
  141. data/src/com/zoho/crm/api/fields/multi_user_lookup.rb +177 -0
  142. data/src/com/zoho/crm/api/fields/pick_list_value.rb +253 -0
  143. data/src/com/zoho/crm/api/fields/private.rb +101 -0
  144. data/src/com/zoho/crm/api/fields/related_details.rb +158 -0
  145. data/src/com/zoho/crm/api/fields/response_handler.rb +12 -0
  146. data/src/com/zoho/crm/api/fields/response_wrapper.rb +65 -0
  147. data/src/com/zoho/crm/api/fields/tool_tip.rb +82 -0
  148. data/src/com/zoho/crm/api/fields/unique.rb +63 -0
  149. data/src/com/zoho/crm/api/fields/view_type.rb +120 -0
  150. data/src/com/zoho/crm/api/files/action_handler.rb +12 -0
  151. data/src/com/zoho/crm/api/files/action_response.rb +12 -0
  152. data/src/com/zoho/crm/api/files/action_wrapper.rb +65 -0
  153. data/src/com/zoho/crm/api/files/api_exception.rb +127 -0
  154. data/src/com/zoho/crm/api/files/body_wrapper.rb +64 -0
  155. data/src/com/zoho/crm/api/files/file_body_wrapper.rb +66 -0
  156. data/src/com/zoho/crm/api/files/file_operations.rb +77 -0
  157. data/src/com/zoho/crm/api/files/response_handler.rb +12 -0
  158. data/src/com/zoho/crm/api/files/success_response.rb +123 -0
  159. data/src/com/zoho/crm/api/header.rb +12 -0
  160. data/src/com/zoho/crm/api/header_map.rb +57 -0
  161. data/src/com/zoho/crm/api/initializer.rb +232 -0
  162. data/src/com/zoho/crm/api/inventory_templates/api_exception.rb +123 -0
  163. data/src/com/zoho/crm/api/inventory_templates/inventory_template.rb +354 -0
  164. data/src/com/zoho/crm/api/inventory_templates/inventory_templates_operations.rb +87 -0
  165. data/src/com/zoho/crm/api/inventory_templates/response_handler.rb +12 -0
  166. data/src/com/zoho/crm/api/inventory_templates/response_wrapper.rb +85 -0
  167. data/src/com/zoho/crm/api/layouts/api_exception.rb +123 -0
  168. data/src/com/zoho/crm/api/layouts/layout.rb +312 -0
  169. data/src/com/zoho/crm/api/layouts/layouts_operations.rb +63 -0
  170. data/src/com/zoho/crm/api/layouts/properties.rb +102 -0
  171. data/src/com/zoho/crm/api/layouts/response_handler.rb +12 -0
  172. data/src/com/zoho/crm/api/layouts/response_wrapper.rb +65 -0
  173. data/src/com/zoho/crm/api/layouts/section.rb +254 -0
  174. data/src/com/zoho/crm/api/modules/action_handler.rb +12 -0
  175. data/src/com/zoho/crm/api/modules/action_response.rb +12 -0
  176. data/src/com/zoho/crm/api/modules/action_wrapper.rb +65 -0
  177. data/src/com/zoho/crm/api/modules/api_exception.rb +127 -0
  178. data/src/com/zoho/crm/api/modules/argument.rb +82 -0
  179. data/src/com/zoho/crm/api/modules/body_wrapper.rb +63 -0
  180. data/src/com/zoho/crm/api/modules/module.rb +941 -0
  181. data/src/com/zoho/crm/api/modules/modules_operations.rb +113 -0
  182. data/src/com/zoho/crm/api/modules/related_list_properties.rb +101 -0
  183. data/src/com/zoho/crm/api/modules/response_handler.rb +12 -0
  184. data/src/com/zoho/crm/api/modules/response_wrapper.rb +65 -0
  185. data/src/com/zoho/crm/api/modules/success_response.rb +123 -0
  186. data/src/com/zoho/crm/api/modules/territory.rb +101 -0
  187. data/src/com/zoho/crm/api/notes/action_handler.rb +12 -0
  188. data/src/com/zoho/crm/api/notes/action_response.rb +12 -0
  189. data/src/com/zoho/crm/api/notes/action_wrapper.rb +65 -0
  190. data/src/com/zoho/crm/api/notes/api_exception.rb +127 -0
  191. data/src/com/zoho/crm/api/notes/body_wrapper.rb +63 -0
  192. data/src/com/zoho/crm/api/notes/info.rb +120 -0
  193. data/src/com/zoho/crm/api/notes/note.rb +370 -0
  194. data/src/com/zoho/crm/api/notes/notes_operations.rb +229 -0
  195. data/src/com/zoho/crm/api/notes/response_handler.rb +12 -0
  196. data/src/com/zoho/crm/api/notes/response_wrapper.rb +84 -0
  197. data/src/com/zoho/crm/api/notes/success_response.rb +123 -0
  198. data/src/com/zoho/crm/api/notification/action_handler.rb +12 -0
  199. data/src/com/zoho/crm/api/notification/action_response.rb +12 -0
  200. data/src/com/zoho/crm/api/notification/action_wrapper.rb +65 -0
  201. data/src/com/zoho/crm/api/notification/api_exception.rb +127 -0
  202. data/src/com/zoho/crm/api/notification/body_wrapper.rb +63 -0
  203. data/src/com/zoho/crm/api/notification/info.rb +120 -0
  204. data/src/com/zoho/crm/api/notification/notification.rb +253 -0
  205. data/src/com/zoho/crm/api/notification/notification_operations.rb +166 -0
  206. data/src/com/zoho/crm/api/notification/response_handler.rb +12 -0
  207. data/src/com/zoho/crm/api/notification/response_wrapper.rb +84 -0
  208. data/src/com/zoho/crm/api/notification/success_response.rb +123 -0
  209. data/src/com/zoho/crm/api/org/action_response.rb +12 -0
  210. data/src/com/zoho/crm/api/org/api_exception.rb +125 -0
  211. data/src/com/zoho/crm/api/org/file_body_wrapper.rb +64 -0
  212. data/src/com/zoho/crm/api/org/hierarchy_preference.rb +63 -0
  213. data/src/com/zoho/crm/api/org/license_details.rb +158 -0
  214. data/src/com/zoho/crm/api/org/org.rb +671 -0
  215. data/src/com/zoho/crm/api/org/org_operations.rb +51 -0
  216. data/src/com/zoho/crm/api/org/response_handler.rb +12 -0
  217. data/src/com/zoho/crm/api/org/response_wrapper.rb +65 -0
  218. data/src/com/zoho/crm/api/org/success_response.rb +123 -0
  219. data/src/com/zoho/crm/api/param.rb +12 -0
  220. data/src/com/zoho/crm/api/parameter_map.rb +56 -0
  221. data/src/com/zoho/crm/api/pipeline/action_handler.rb +12 -0
  222. data/src/com/zoho/crm/api/pipeline/action_response.rb +12 -0
  223. data/src/com/zoho/crm/api/pipeline/action_wrapper.rb +65 -0
  224. data/src/com/zoho/crm/api/pipeline/api_exception.rb +131 -0
  225. data/src/com/zoho/crm/api/pipeline/body_wrapper.rb +63 -0
  226. data/src/com/zoho/crm/api/pipeline/forecast_category.rb +82 -0
  227. data/src/com/zoho/crm/api/pipeline/pick_list_value.rb +177 -0
  228. data/src/com/zoho/crm/api/pipeline/pipeline.rb +215 -0
  229. data/src/com/zoho/crm/api/pipeline/pipeline_operations.rb +167 -0
  230. data/src/com/zoho/crm/api/pipeline/response_handler.rb +12 -0
  231. data/src/com/zoho/crm/api/pipeline/response_wrapper.rb +65 -0
  232. data/src/com/zoho/crm/api/pipeline/stage.rb +82 -0
  233. data/src/com/zoho/crm/api/pipeline/success_response.rb +125 -0
  234. data/src/com/zoho/crm/api/pipeline/transfer_action_handler.rb +12 -0
  235. data/src/com/zoho/crm/api/pipeline/transfer_action_response.rb +12 -0
  236. data/src/com/zoho/crm/api/pipeline/transfer_action_wrapper.rb +65 -0
  237. data/src/com/zoho/crm/api/pipeline/transfer_and_delete_wrapper.rb +63 -0
  238. data/src/com/zoho/crm/api/pipeline/transfer_pipe_line.rb +82 -0
  239. data/src/com/zoho/crm/api/profiles/api_exception.rb +123 -0
  240. data/src/com/zoho/crm/api/profiles/category.rb +120 -0
  241. data/src/com/zoho/crm/api/profiles/default_view.rb +101 -0
  242. data/src/com/zoho/crm/api/profiles/permission_detail.rb +139 -0
  243. data/src/com/zoho/crm/api/profiles/profile.rb +330 -0
  244. data/src/com/zoho/crm/api/profiles/profiles_operations.rb +63 -0
  245. data/src/com/zoho/crm/api/profiles/response_handler.rb +12 -0
  246. data/src/com/zoho/crm/api/profiles/response_wrapper.rb +65 -0
  247. data/src/com/zoho/crm/api/profiles/section.rb +82 -0
  248. data/src/com/zoho/crm/api/query/api_exception.rb +123 -0
  249. data/src/com/zoho/crm/api/query/body_wrapper.rb +63 -0
  250. data/src/com/zoho/crm/api/query/query_operations.rb +37 -0
  251. data/src/com/zoho/crm/api/query/response_handler.rb +12 -0
  252. data/src/com/zoho/crm/api/query/response_wrapper.rb +86 -0
  253. data/src/com/zoho/crm/api/record/action_handler.rb +12 -0
  254. data/src/com/zoho/crm/api/record/action_response.rb +12 -0
  255. data/src/com/zoho/crm/api/record/action_wrapper.rb +65 -0
  256. data/src/com/zoho/crm/api/record/api_exception.rb +147 -0
  257. data/src/com/zoho/crm/api/record/body_wrapper.rb +158 -0
  258. data/src/com/zoho/crm/api/record/carry_over_tags.rb +101 -0
  259. data/src/com/zoho/crm/api/record/comment.rb +120 -0
  260. data/src/com/zoho/crm/api/record/consent.rb +187 -0
  261. data/src/com/zoho/crm/api/record/convert_action_handler.rb +12 -0
  262. data/src/com/zoho/crm/api/record/convert_action_response.rb +12 -0
  263. data/src/com/zoho/crm/api/record/convert_action_wrapper.rb +65 -0
  264. data/src/com/zoho/crm/api/record/convert_body_wrapper.rb +63 -0
  265. data/src/com/zoho/crm/api/record/count_handler.rb +12 -0
  266. data/src/com/zoho/crm/api/record/count_wrapper.rb +65 -0
  267. data/src/com/zoho/crm/api/record/criteria.rb +137 -0
  268. data/src/com/zoho/crm/api/record/deleted_record.rb +159 -0
  269. data/src/com/zoho/crm/api/record/deleted_records_handler.rb +12 -0
  270. data/src/com/zoho/crm/api/record/deleted_records_wrapper.rb +84 -0
  271. data/src/com/zoho/crm/api/record/download_handler.rb +12 -0
  272. data/src/com/zoho/crm/api/record/field.rb +2111 -0
  273. data/src/com/zoho/crm/api/record/file_body_wrapper.rb +68 -0
  274. data/src/com/zoho/crm/api/record/file_details.rb +329 -0
  275. data/src/com/zoho/crm/api/record/file_handler.rb +12 -0
  276. data/src/com/zoho/crm/api/record/image_upload.rb +215 -0
  277. data/src/com/zoho/crm/api/record/info.rb +120 -0
  278. data/src/com/zoho/crm/api/record/lead_converter.rb +196 -0
  279. data/src/com/zoho/crm/api/record/line_item_product.rb +67 -0
  280. data/src/com/zoho/crm/api/record/line_tax.rb +139 -0
  281. data/src/com/zoho/crm/api/record/mass_update.rb +142 -0
  282. data/src/com/zoho/crm/api/record/mass_update_action_handler.rb +12 -0
  283. data/src/com/zoho/crm/api/record/mass_update_action_response.rb +12 -0
  284. data/src/com/zoho/crm/api/record/mass_update_action_wrapper.rb +65 -0
  285. data/src/com/zoho/crm/api/record/mass_update_body_wrapper.rb +158 -0
  286. data/src/com/zoho/crm/api/record/mass_update_response.rb +12 -0
  287. data/src/com/zoho/crm/api/record/mass_update_response_handler.rb +12 -0
  288. data/src/com/zoho/crm/api/record/mass_update_response_wrapper.rb +65 -0
  289. data/src/com/zoho/crm/api/record/mass_update_success_response.rb +123 -0
  290. data/src/com/zoho/crm/api/record/mass_update_territory.rb +82 -0
  291. data/src/com/zoho/crm/api/record/multi_select_lookup.rb +101 -0
  292. data/src/com/zoho/crm/api/record/multi_select_picklist.rb +82 -0
  293. data/src/com/zoho/crm/api/record/options.rb +12 -0
  294. data/src/com/zoho/crm/api/record/participants.rb +118 -0
  295. data/src/com/zoho/crm/api/record/price_book.rb +33 -0
  296. data/src/com/zoho/crm/api/record/pricing_details.rb +67 -0
  297. data/src/com/zoho/crm/api/record/record.rb +194 -0
  298. data/src/com/zoho/crm/api/record/record_operations.rb +1132 -0
  299. data/src/com/zoho/crm/api/record/recurring_activity.rb +63 -0
  300. data/src/com/zoho/crm/api/record/remind_at.rb +63 -0
  301. data/src/com/zoho/crm/api/record/reminder.rb +82 -0
  302. data/src/com/zoho/crm/api/record/response_handler.rb +12 -0
  303. data/src/com/zoho/crm/api/record/response_wrapper.rb +84 -0
  304. data/src/com/zoho/crm/api/record/success_response.rb +163 -0
  305. data/src/com/zoho/crm/api/record/successful_convert.rb +103 -0
  306. data/src/com/zoho/crm/api/record/tax.rb +82 -0
  307. data/src/com/zoho/crm/api/record/territory.rb +140 -0
  308. data/src/com/zoho/crm/api/record/widget.rb +82 -0
  309. data/src/com/zoho/crm/api/record/wizard.rb +82 -0
  310. data/src/com/zoho/crm/api/related_lists/api_exception.rb +123 -0
  311. data/src/com/zoho/crm/api/related_lists/related_list.rb +253 -0
  312. data/src/com/zoho/crm/api/related_lists/related_lists_operations.rb +63 -0
  313. data/src/com/zoho/crm/api/related_lists/response_handler.rb +12 -0
  314. data/src/com/zoho/crm/api/related_lists/response_wrapper.rb +65 -0
  315. data/src/com/zoho/crm/api/related_records/action_handler.rb +12 -0
  316. data/src/com/zoho/crm/api/related_records/action_response.rb +12 -0
  317. data/src/com/zoho/crm/api/related_records/action_wrapper.rb +65 -0
  318. data/src/com/zoho/crm/api/related_records/api_exception.rb +127 -0
  319. data/src/com/zoho/crm/api/related_records/body_wrapper.rb +64 -0
  320. data/src/com/zoho/crm/api/related_records/file_body_wrapper.rb +66 -0
  321. data/src/com/zoho/crm/api/related_records/related_records_operations.rb +524 -0
  322. data/src/com/zoho/crm/api/related_records/response_handler.rb +12 -0
  323. data/src/com/zoho/crm/api/related_records/response_wrapper.rb +86 -0
  324. data/src/com/zoho/crm/api/related_records/success_response.rb +123 -0
  325. data/src/com/zoho/crm/api/request_proxy.rb +17 -0
  326. data/src/com/zoho/crm/api/roles/api_exception.rb +123 -0
  327. data/src/com/zoho/crm/api/roles/response_handler.rb +12 -0
  328. data/src/com/zoho/crm/api/roles/response_wrapper.rb +65 -0
  329. data/src/com/zoho/crm/api/roles/role.rb +197 -0
  330. data/src/com/zoho/crm/api/roles/roles_operations.rb +49 -0
  331. data/src/com/zoho/crm/api/sdk_config.rb +15 -0
  332. data/src/com/zoho/crm/api/send_mail/action_handler.rb +12 -0
  333. data/src/com/zoho/crm/api/send_mail/action_response.rb +12 -0
  334. data/src/com/zoho/crm/api/send_mail/action_wrapper.rb +65 -0
  335. data/src/com/zoho/crm/api/send_mail/api_exception.rb +127 -0
  336. data/src/com/zoho/crm/api/send_mail/body_wrapper.rb +63 -0
  337. data/src/com/zoho/crm/api/send_mail/data_subject_request.rb +82 -0
  338. data/src/com/zoho/crm/api/send_mail/inventory_details.rb +102 -0
  339. data/src/com/zoho/crm/api/send_mail/mail.rb +425 -0
  340. data/src/com/zoho/crm/api/send_mail/response_handler.rb +12 -0
  341. data/src/com/zoho/crm/api/send_mail/response_wrapper.rb +65 -0
  342. data/src/com/zoho/crm/api/send_mail/send_mail_operations.rb +63 -0
  343. data/src/com/zoho/crm/api/send_mail/success_response.rb +123 -0
  344. data/src/com/zoho/crm/api/send_mail/template.rb +12 -0
  345. data/src/com/zoho/crm/api/send_mail/user_address.rb +139 -0
  346. data/src/com/zoho/crm/api/share_records/action_handler.rb +12 -0
  347. data/src/com/zoho/crm/api/share_records/action_response.rb +12 -0
  348. data/src/com/zoho/crm/api/share_records/action_wrapper.rb +65 -0
  349. data/src/com/zoho/crm/api/share_records/api_exception.rb +131 -0
  350. data/src/com/zoho/crm/api/share_records/body_wrapper.rb +63 -0
  351. data/src/com/zoho/crm/api/share_records/delete_action_handler.rb +12 -0
  352. data/src/com/zoho/crm/api/share_records/delete_action_response.rb +12 -0
  353. data/src/com/zoho/crm/api/share_records/delete_action_wrapper.rb +65 -0
  354. data/src/com/zoho/crm/api/share_records/response_handler.rb +12 -0
  355. data/src/com/zoho/crm/api/share_records/response_wrapper.rb +85 -0
  356. data/src/com/zoho/crm/api/share_records/share_record.rb +159 -0
  357. data/src/com/zoho/crm/api/share_records/share_records_operations.rb +130 -0
  358. data/src/com/zoho/crm/api/share_records/shared_through.rb +102 -0
  359. data/src/com/zoho/crm/api/share_records/success_response.rb +125 -0
  360. data/src/com/zoho/crm/api/tags/action_handler.rb +12 -0
  361. data/src/com/zoho/crm/api/tags/action_response.rb +12 -0
  362. data/src/com/zoho/crm/api/tags/action_wrapper.rb +65 -0
  363. data/src/com/zoho/crm/api/tags/api_exception.rb +133 -0
  364. data/src/com/zoho/crm/api/tags/body_wrapper.rb +63 -0
  365. data/src/com/zoho/crm/api/tags/conflict_wrapper.rb +63 -0
  366. data/src/com/zoho/crm/api/tags/count_handler.rb +12 -0
  367. data/src/com/zoho/crm/api/tags/count_wrapper.rb +65 -0
  368. data/src/com/zoho/crm/api/tags/info.rb +82 -0
  369. data/src/com/zoho/crm/api/tags/merge_wrapper.rb +63 -0
  370. data/src/com/zoho/crm/api/tags/record_action_handler.rb +12 -0
  371. data/src/com/zoho/crm/api/tags/record_action_response.rb +12 -0
  372. data/src/com/zoho/crm/api/tags/record_action_wrapper.rb +122 -0
  373. data/src/com/zoho/crm/api/tags/response_handler.rb +12 -0
  374. data/src/com/zoho/crm/api/tags/response_wrapper.rb +84 -0
  375. data/src/com/zoho/crm/api/tags/success_response.rb +125 -0
  376. data/src/com/zoho/crm/api/tags/tag.rb +178 -0
  377. data/src/com/zoho/crm/api/tags/tags_operations.rb +389 -0
  378. data/src/com/zoho/crm/api/taxes/action_handler.rb +12 -0
  379. data/src/com/zoho/crm/api/taxes/action_response.rb +12 -0
  380. data/src/com/zoho/crm/api/taxes/action_wrapper.rb +65 -0
  381. data/src/com/zoho/crm/api/taxes/api_exception.rb +127 -0
  382. data/src/com/zoho/crm/api/taxes/body_wrapper.rb +63 -0
  383. data/src/com/zoho/crm/api/taxes/preference.rb +82 -0
  384. data/src/com/zoho/crm/api/taxes/response_handler.rb +12 -0
  385. data/src/com/zoho/crm/api/taxes/response_wrapper.rb +84 -0
  386. data/src/com/zoho/crm/api/taxes/success_response.rb +123 -0
  387. data/src/com/zoho/crm/api/taxes/tax.rb +139 -0
  388. data/src/com/zoho/crm/api/taxes/taxes_operations.rb +138 -0
  389. data/src/com/zoho/crm/api/territories/api_exception.rb +123 -0
  390. data/src/com/zoho/crm/api/territories/response_handler.rb +12 -0
  391. data/src/com/zoho/crm/api/territories/response_wrapper.rb +85 -0
  392. data/src/com/zoho/crm/api/territories/territories_operations.rb +49 -0
  393. data/src/com/zoho/crm/api/territories/territory.rb +274 -0
  394. data/src/com/zoho/crm/api/user_signature.rb +29 -0
  395. data/src/com/zoho/crm/api/users/action_handler.rb +12 -0
  396. data/src/com/zoho/crm/api/users/action_response.rb +12 -0
  397. data/src/com/zoho/crm/api/users/action_wrapper.rb +65 -0
  398. data/src/com/zoho/crm/api/users/api_exception.rb +127 -0
  399. data/src/com/zoho/crm/api/users/body_wrapper.rb +63 -0
  400. data/src/com/zoho/crm/api/users/customize_info.rb +158 -0
  401. data/src/com/zoho/crm/api/users/info.rb +120 -0
  402. data/src/com/zoho/crm/api/users/request_wrapper.rb +63 -0
  403. data/src/com/zoho/crm/api/users/response_handler.rb +12 -0
  404. data/src/com/zoho/crm/api/users/response_wrapper.rb +84 -0
  405. data/src/com/zoho/crm/api/users/shift.rb +82 -0
  406. data/src/com/zoho/crm/api/users/success_response.rb +123 -0
  407. data/src/com/zoho/crm/api/users/tab_theme.rb +82 -0
  408. data/src/com/zoho/crm/api/users/territory.rb +101 -0
  409. data/src/com/zoho/crm/api/users/theme.rb +158 -0
  410. data/src/com/zoho/crm/api/users/user.rb +749 -0
  411. data/src/com/zoho/crm/api/users/users_operations.rb +183 -0
  412. data/src/com/zoho/crm/api/util/api_http_connector.rb +114 -0
  413. data/src/com/zoho/crm/api/util/api_response.rb +18 -0
  414. data/src/com/zoho/crm/api/util/choice.rb +11 -0
  415. data/src/com/zoho/crm/api/util/common_api_handler.rb +241 -0
  416. data/src/com/zoho/crm/api/util/constants.rb +676 -0
  417. data/src/com/zoho/crm/api/util/converter.rb +238 -0
  418. data/src/com/zoho/crm/api/util/data_type_converter.rb +170 -0
  419. data/src/com/zoho/crm/api/util/downloader.rb +86 -0
  420. data/src/com/zoho/crm/api/util/form_data_converter.rb +159 -0
  421. data/src/com/zoho/crm/api/util/header_param_validator.rb +57 -0
  422. data/src/com/zoho/crm/api/util/json_converter.rb +731 -0
  423. data/src/com/zoho/crm/api/util/model.rb +7 -0
  424. data/src/com/zoho/crm/api/util/module_fields_handler.rb +80 -0
  425. data/src/com/zoho/crm/api/util/stream_wrapper.rb +39 -0
  426. data/src/com/zoho/crm/api/util/utility.rb +927 -0
  427. data/src/com/zoho/crm/api/variable_groups/api_exception.rb +123 -0
  428. data/src/com/zoho/crm/api/variable_groups/response_handler.rb +12 -0
  429. data/src/com/zoho/crm/api/variable_groups/response_wrapper.rb +65 -0
  430. data/src/com/zoho/crm/api/variable_groups/variable_group.rb +139 -0
  431. data/src/com/zoho/crm/api/variable_groups/variable_groups_operations.rb +68 -0
  432. data/src/com/zoho/crm/api/variables/action_handler.rb +12 -0
  433. data/src/com/zoho/crm/api/variables/action_response.rb +12 -0
  434. data/src/com/zoho/crm/api/variables/action_wrapper.rb +65 -0
  435. data/src/com/zoho/crm/api/variables/api_exception.rb +127 -0
  436. data/src/com/zoho/crm/api/variables/body_wrapper.rb +63 -0
  437. data/src/com/zoho/crm/api/variables/response_handler.rb +12 -0
  438. data/src/com/zoho/crm/api/variables/response_wrapper.rb +65 -0
  439. data/src/com/zoho/crm/api/variables/success_response.rb +123 -0
  440. data/src/com/zoho/crm/api/variables/variable.rb +194 -0
  441. data/src/com/zoho/crm/api/variables/variables_operations.rb +243 -0
  442. data/src/com/zoho/crm/api/wizards/api_exception.rb +123 -0
  443. data/src/com/zoho/crm/api/wizards/button.rb +254 -0
  444. data/src/com/zoho/crm/api/wizards/chart_data.rb +120 -0
  445. data/src/com/zoho/crm/api/wizards/connection.rb +82 -0
  446. data/src/com/zoho/crm/api/wizards/container.rb +121 -0
  447. data/src/com/zoho/crm/api/wizards/node.rb +120 -0
  448. data/src/com/zoho/crm/api/wizards/response_handler.rb +12 -0
  449. data/src/com/zoho/crm/api/wizards/response_wrapper.rb +65 -0
  450. data/src/com/zoho/crm/api/wizards/screen.rb +101 -0
  451. data/src/com/zoho/crm/api/wizards/segment.rb +178 -0
  452. data/src/com/zoho/crm/api/wizards/transition.rb +82 -0
  453. data/src/com/zoho/crm/api/wizards/wizard.rb +275 -0
  454. data/src/com/zoho/crm/api/wizards/wizards_operations.rb +63 -0
  455. data/src/resources/JSONDetails.json +1 -0
  456. data/src/version.rb +3 -0
  457. metadata +597 -0
@@ -0,0 +1,285 @@
1
+ require 'uri'
2
+ require 'net/http'
3
+ require 'json'
4
+ require 'monitor'
5
+
6
+ require_relative 'token'
7
+ require_relative '../../crm/api/util/constants'
8
+ require_relative '../logger/sdk_logger'
9
+ require_relative '../../crm/api/exception/sdk_exception'
10
+
11
+ module ZOHOCRMSDK
12
+ module Authenticator
13
+ # This class gets and refreshes the tokens based on the expiry time.
14
+ class OAuthToken < Token
15
+ attr_accessor :client_id, :client_secret, :redirect_url, :grant_token, :refresh_token, :access_token, :user_mail, :id, :expires_in
16
+ @@sync_lock = Monitor.new
17
+
18
+ # Creates an OAuthToken class instance with the specified parameters.
19
+ # @param client_id [string] A String containing the OAuth client id.
20
+ # @param client_secret [string] A String containing the OAuth client secret.
21
+ # @param grant_token [string] A String containing the grant token.
22
+ # @param refresh_token [string] A String containing the refresh token.
23
+ # @param redirect_url [string] A String containing the OAuth redirect URL.
24
+ # @param id [string] A String containing ID
25
+
26
+ def initialize(client_id: nil, client_secret: nil, grant_token: nil, refresh_token: nil, redirect_url: nil, id: nil, access_token: nil)
27
+ error = {}
28
+
29
+ if grant_token.nil? && refresh_token.nil? && id.nil? && access_token.nil?
30
+ raise SDKException.new(Constants::MANDATORY_VALUE_ERROR, Constants::MANDATORY_KEY_ERROR, Constants::OAUTH_MANDATORY_KEYS)
31
+ end
32
+
33
+ if id.nil? and access_token.nil?
34
+ unless client_id.is_a?(String)
35
+ error[Constants::ERROR_HASH_FIELD] = Constants::CLIENT_ID
36
+
37
+ error[Constants::ERROR_HASH_EXPECTED_TYPE] = String
38
+
39
+ error[Constants::ERROR_HASH_CLASS] = OAuthToken.class
40
+
41
+ raise SDKException.new(Constants::INPUT_ERROR, nil, error, nil)
42
+
43
+ end
44
+
45
+ unless client_secret.is_a?(String)
46
+ error[Constants::ERROR_HASH_FIELD] = Constants::CLIENT_SECRET
47
+
48
+ error[Constants::ERROR_HASH_EXPECTED_TYPE] = String
49
+
50
+ error[Constants::ERROR_HASH_CLASS] = OAuthToken.class
51
+
52
+ raise SDKException.new(Constants::INPUT_ERROR, nil, error, nil)
53
+
54
+ end
55
+
56
+ if !grant_token.nil? && !grant_token.is_a?(String)
57
+ error[Constants::ERROR_HASH_FIELD] = Constants::GRANT_TOKEN
58
+
59
+ error[Constants::ERROR_HASH_EXPECTED_TYPE] = String
60
+
61
+ error[Constants::ERROR_HASH_CLASS] = OAuthToken.class
62
+
63
+ raise SDKException.new(Constants::INPUT_ERROR, nil, error, nil)
64
+
65
+ end
66
+
67
+ if !refresh_token.nil? && !refresh_token.is_a?(String)
68
+ error[Constants::ERROR_HASH_FIELD] = Constants::REFRESH_TOKEN
69
+
70
+ error[Constants::ERROR_HASH_EXPECTED_TYPE] = String
71
+
72
+ error[Constants::ERROR_HASH_CLASS] = OAuthToken.class
73
+
74
+ raise SDKException.new(Constants::INPUT_ERROR, nil, error, nil)
75
+
76
+ end
77
+
78
+ if !redirect_url.nil? && !redirect_url.is_a?(String)
79
+ error[Constants::ERROR_HASH_FIELD] = Constants::REDIRECT_URL
80
+
81
+ error[Constants::ERROR_HASH_EXPECTED_TYPE] = String
82
+
83
+ error[Constants::ERROR_HASH_CLASS] = OAuthToken.class
84
+
85
+ raise SDKException.new(Constants::INPUT_ERROR, nil, error, nil)
86
+
87
+ end
88
+ end
89
+
90
+ if !id.nil? && !id.is_a?(String)
91
+ error[Constants::ERROR_HASH_FIELD] = Constants::ID
92
+
93
+ error[Constants::ERROR_HASH_EXPECTED_TYPE] = String
94
+
95
+ error[Constants::ERROR_HASH_CLASS] = OAuthToken.class
96
+
97
+ raise SDKException.new(Constants::INPUT_ERROR, nil, error, nil)
98
+
99
+ end
100
+
101
+ if !access_token.nil? && !access_token.is_a?(String)
102
+ error[Constants::ERROR_HASH_FIELD] = Constants::ACCESS_TOKEN
103
+
104
+ error[Constants::ERROR_HASH_EXPECTED_TYPE] = String
105
+
106
+ error[Constants::ERROR_HASH_CLASS] = OAuthToken.class
107
+
108
+ raise SDKException.new(Constants::INPUT_ERROR, nil, error, nil)
109
+ end
110
+
111
+ @client_id = client_id
112
+
113
+ @client_secret = client_secret
114
+
115
+ @redirect_url = redirect_url
116
+
117
+ @refresh_token = refresh_token
118
+
119
+ @grant_token = grant_token
120
+
121
+ @access_token = access_token
122
+
123
+ @expires_in = nil
124
+
125
+ @user_mail = nil
126
+
127
+ @id = id
128
+ end
129
+
130
+ def authenticate(url_connection)
131
+ @@sync_lock.synchronize do
132
+ initializer = Initializer.get_initializer
133
+ store = initializer.store
134
+ user = initializer.user
135
+
136
+ oauth_token = nil
137
+ if @access_token.nil?
138
+ if !@id.nil?
139
+ oauth_token = initializer.store.get_token_by_id(@id, self)
140
+ else
141
+ oauth_token = initializer.store.get_token(user, self)
142
+ end
143
+ else
144
+ oauth_token = self
145
+ end
146
+
147
+ token = ""
148
+
149
+ if oauth_token.nil?
150
+ token = @refresh_token.nil? ? generate_access_token(user, store).access_token : refresh_access_token(user, store).access_token
151
+ elsif !oauth_token.expires_in.nil? && oauth_token.expires_in.to_f - get_current_time_in_millis < 5000
152
+ SDKLog::SDKLogger.info(Constants::REFRESH_TOKEN_MESSAGE)
153
+ token = oauth_token.refresh_access_token(user, store).access_token
154
+ else
155
+ token = oauth_token.access_token
156
+ end
157
+ url_connection.headers[Constants::AUTHORIZATION] = Constants::OAUTH_HEADER_PREFIX + token
158
+ end
159
+ end
160
+
161
+ def remove
162
+ Initializer.get_initializer.store.delete_token(self)
163
+ true
164
+ rescue StandardError
165
+ false
166
+ end
167
+
168
+ def generate_access_token(user, store)
169
+ json_body = {}
170
+
171
+ json_body[Constants::CLIENT_ID] = @client_id
172
+
173
+ json_body[Constants::CLIENT_SECRET] = @client_secret
174
+
175
+ json_body[Constants::REDIRECT_URI] = @redirect_url if !@redirect_url.nil?
176
+
177
+ json_body[Constants::GRANT_TYPE] = Constants::GRANT_TYPE_AUTH_CODE
178
+
179
+ json_body[Constants::CODE] = @grant_token
180
+
181
+ response = get_response_from_server(json_body)
182
+
183
+ begin
184
+ parse_response(response)
185
+
186
+ generate_id()
187
+
188
+ store.save_token(user, self)
189
+ rescue SDKException => e
190
+ raise e
191
+ rescue StandardError => e
192
+ raise SDKException.new(nil, Constants::SAVE_TOKEN_ERROR, nil, e)
193
+ end
194
+ self
195
+ end
196
+
197
+ def refresh_access_token(user, store)
198
+ json_body = {}
199
+
200
+ json_body[Constants::CLIENT_ID] = @client_id
201
+
202
+ json_body[Constants::CLIENT_SECRET] = @client_secret
203
+
204
+ json_body[Constants::GRANT_TYPE] = Constants::REFRESH_TOKEN
205
+
206
+ json_body[Constants::REFRESH_TOKEN] = @refresh_token
207
+
208
+ response = get_response_from_server(json_body)
209
+
210
+ begin
211
+ parse_response(response)
212
+
213
+ if @id.nil?
214
+ generate_id()
215
+ end
216
+
217
+ store.save_token(user, self)
218
+ rescue SDKException => e
219
+ raise e
220
+ rescue StandardError => e
221
+ raise SDKException.new(nil, Constants::SAVE_TOKEN_ERROR, nil, e)
222
+ end
223
+ self
224
+ end
225
+
226
+ def parse_response(response)
227
+ response_json = JSON.parse(response)
228
+
229
+ unless response_json.key? Constants::ACCESS_TOKEN
230
+ raise SDKException.new(Constants::INVALID_CLIENT_ERROR, response_json[Constants::ERROR_KEY], nil, nil)
231
+ end
232
+
233
+ @access_token = response_json[Constants::ACCESS_TOKEN]
234
+
235
+ @expires_in = get_token_expiry_time(response_json)
236
+
237
+ @refresh_token = response_json[Constants::REFRESH_TOKEN] if response_json.key? Constants::REFRESH_TOKEN
238
+ self
239
+ end
240
+
241
+ def get_response_from_server(json_body)
242
+ accounts_url = Initializer.get_initializer.environment.accounts_url
243
+
244
+ url = URI(accounts_url)
245
+
246
+ http = Net::HTTP.new(url.host, url.port)
247
+
248
+ http.use_ssl = true
249
+
250
+ request = Net::HTTP::Post.new(url.request_uri)
251
+ request.add_field(Constants::USER_AGENT_KEY, Constants::USER_AGENT)
252
+ request.set_form(json_body, Constants::APPLICATION_FORM_URLENCODED)
253
+
254
+ response = http.request(request)
255
+
256
+ response.body
257
+ rescue StandardError => e
258
+ raise SDKException.new(nil, nil, nil, e)
259
+ end
260
+
261
+ def get_token_expiry_time(response_json)
262
+ expires_in = response_json[Constants::EXPIRES_IN]
263
+
264
+ expires_in *= 1000 unless response_json.key? Constants::EXPIRES_IN_SEC
265
+
266
+ expires_in += get_current_time_in_millis
267
+
268
+ expires_in
269
+ end
270
+
271
+ def get_current_time_in_millis
272
+ (Time.now.to_f * 1000).to_i
273
+ end
274
+
275
+ def generate_id
276
+ id = ""
277
+ email = Initializer.get_initializer.user.email
278
+ environment = Initializer.get_initializer.environment.name
279
+ id = id + (Constants::RUBY) + email[0..email.index(Constants::AT) - 1] + Constants::UNDERSCORE
280
+ id = id + environment + Constants::UNDERSCORE + @refresh_token[@refresh_token.length-4..@refresh_token.length-1]
281
+ @id = id
282
+ end
283
+ end
284
+ end
285
+ end
@@ -0,0 +1,193 @@
1
+ require 'mysql2'
2
+ require_relative 'token_store'
3
+ require_relative '../oauth_token'
4
+ require_relative '../../../crm/api/util/constants'
5
+
6
+ module ZOHOCRMSDK
7
+ module Store
8
+ # This class stores the user token details to the MySQL DataBase.
9
+ class DBStore < TokenStore
10
+ attr_reader :user_name, :password, :port_number, :host, :database_name, :table_name
11
+
12
+ # Creates an DBStore class instance with the specified parameters.
13
+ # @param host [string] A String containing the DataBase host name.
14
+ # @param database_name A String containing the DataBase name.
15
+ # @param table_name A String containing the table name.
16
+ # @param user_name A String containing the DataBase user name.
17
+ # @param password A String containing the DataBase password.
18
+ # @param port_number A String containing the DataBase port number.
19
+ def initialize(host: Constants::MYSQL_HOST, database_name: Constants::MYSQL_DATABASE_NAME , table_name: Constants::MYSQL_TABLE_NAME, user_name: Constants::MYSQL_USER_NAME, password: '', port_number: Constants::MYSQL_PORT_NUMBER )
20
+ @host = host
21
+ @database_name = database_name
22
+ @table_name = table_name
23
+ @user_name = user_name
24
+ @password = password
25
+ @port_number = port_number
26
+ end
27
+
28
+ def get_token(user, token)
29
+ con = Mysql2::Client.new(host: @host, username: @user_name, password: @password, database: @database_name, port: @port_number)
30
+
31
+ query = construct_db_query(user.email, token, false)
32
+
33
+ rs = con.query(query)
34
+
35
+ con.close
36
+
37
+ rs.each do |row|
38
+ oauthtoken = token
39
+
40
+ oauthtoken.client_id = row[Constants::CLIENT_ID]
41
+
42
+ oauthtoken.client_secret = row[Constants::CLIENT_SECRET]
43
+
44
+ oauthtoken.grant_token = row[Constants::GRANT_TOKEN]
45
+
46
+ oauthtoken.redirect_url = row[Constants::REDIRECT_URL]
47
+
48
+ oauthtoken.refresh_token = row[Constants::REFRESH_TOKEN]
49
+
50
+ oauthtoken.id = row[Constants::ID]
51
+
52
+ oauthtoken.user_mail = row[Constants::USER_MAIL]
53
+
54
+ oauthtoken.access_token = row[Constants::ACCESS_TOKEN]
55
+
56
+ oauthtoken.expires_in = row[Constants::EXPIRY_TIME]
57
+
58
+ return oauthtoken
59
+ end
60
+ nil
61
+ rescue Mysql2::Error => e
62
+ raise SDKException.new(Constants::TOKEN_STORE, Constants::GET_TOKEN_DB_ERROR, nil, e)
63
+ end
64
+
65
+ def save_token(user, token)
66
+ con = Mysql2::Client.new(host: @host, username: @user_name, password: @password, database: @database_name, port: @port_number)
67
+ if token.is_a? Authenticator::OAuthToken
68
+ query = "insert into #{token.table_name}(id,user_mail,client_id,client_secret,refresh_token,access_token,grant_token,expiry_time,redirect_url) values ('#{token.id}','#{user.email}','#{token.client_id}','#{token.client_secret}','#{token.refresh_token}','#{token.access_token}','#{token.grant_token}','#{token.expires_in}','#{token.redirect_url}')"
69
+ token.user_mail = user.email
70
+ delete_token(token)
71
+ con.query(query)
72
+ end
73
+
74
+ con.close
75
+ rescue Mysql2::Error => e
76
+ raise SDKException.new(Constants::TOKEN_STORE, Constants::SAVE_TOKEN_DB_ERROR, nil, e)
77
+ end
78
+
79
+ def delete_token(token)
80
+ con = Mysql2::Client.new(host: @host, username: @user_name, password: @password, database: @database_name, port: @port_number)
81
+ if token.is_a? Authenticator::OAuthToken
82
+ query = construct_db_query(token.user_mail, token, true)
83
+
84
+ con.query(query)
85
+ end
86
+
87
+ con.close
88
+ rescue Mysql2::Error => e
89
+ raise SDKException.new(Constants::TOKEN_STORE, Constants::DELETE_TOKEN_DB_ERROR, nil, e)
90
+ end
91
+
92
+ def delete_tokens
93
+ con = Mysql2::Client.new(host: @host, username: @user_name, password: @password, database: @database_name, port: @port_number)
94
+
95
+ query = "delete * from #{@table_name}"
96
+
97
+ con.query(query)
98
+
99
+ con.close
100
+ rescue Mysql2::Error => e
101
+ raise SDKException.new(Constants::TOKEN_STORE, Constants::DELETE_TOKENS_DB_ERROR, nil, e)
102
+ end
103
+
104
+ def get_tokens
105
+ tokens = []
106
+ con = Mysql2::Client.new(host: @host, username: @user_name, password: @password, database: @database_name, port: @port_number)
107
+
108
+ query = "select * from #{@table_name}"
109
+
110
+ rs = con.query(query)
111
+
112
+ con.close
113
+
114
+ rs.each do |row|
115
+
116
+
117
+ oauthtoken = Authenticator::OAuthToken.new(client_id: row[Constants::CLIENT_ID],client_secret: row[Constants::CLIENT_SECRET],grant_token: grant_token,refresh_token: row[Constants::REFRESH_TOKEN])
118
+
119
+ oauthtoken.id = row[Constants::ID]
120
+
121
+ oauthtoken.user_mail = row[Constants::USER_MAIL]
122
+
123
+ oauthtoken.access_token = row[Constants::ACCESS_TOKEN]
124
+
125
+ oauthtoken.redirect_url = row[Constants::REDIRECT_URL]
126
+
127
+ oauthtoken.expires_in = row[Constants::EXPIRY_TIME]
128
+
129
+ tokens.push(oauthtoken)
130
+ end
131
+ tokens
132
+ rescue Mysql2::Error => e
133
+ raise SDKException.new(Constants::TOKEN_STORE, Constants::GET_TOKENS_DB_ERROR, nil, e)
134
+ end
135
+
136
+ def construct_db_query(email, token, is_delete)
137
+ raise SDKException.new(Constants::USER_MAIL_NULL_ERROR, Constants::USER_MAIL_NULL_ERROR_MESSAGE) if email.nil?
138
+
139
+ query = is_delete ? 'delete from ' : 'select * from '
140
+
141
+ query += "#{@table_name} where user_mail='#{email}' and client_id='#{token.client_id}' and "
142
+
143
+ query += if token.grant_token.nil?
144
+ "refresh_token='#{token.refresh_token}'"
145
+ else
146
+ "grant_token='#{token.grant_token}'"
147
+ end
148
+
149
+ query
150
+ end
151
+ def get_token_by_id(id,token)
152
+ con = Mysql2::Client.new(host: @host, username: @user_name, password: @password, database: @database_name, port: @port_number)
153
+
154
+ if token.is_a? Authenticator::OAuthToken
155
+ query = "select * from #{@table_name} where id='#{id}'"
156
+
157
+ rs = con.query(query)
158
+
159
+ con.close
160
+
161
+ rs.each do |row|
162
+ if id == row[Constants::ID]
163
+ oauthtoken = token
164
+
165
+ oauthtoken.client_id = row[Constants::CLIENT_ID]
166
+
167
+ oauthtoken.client_secret = row[Constants::CLIENT_SECRET]
168
+
169
+ oauthtoken.grant_token = row[Constants::GRANT_TOKEN]
170
+
171
+ oauthtoken.redirect_url = row[Constants::REDIRECT_URL]
172
+
173
+ oauthtoken.refresh_token = row[Constants::REFRESH_TOKEN]
174
+
175
+ oauthtoken.id = row[Constants::ID]
176
+
177
+ oauthtoken.user_mail = row[Constants::USER_MAIL]
178
+
179
+ oauthtoken.access_token = row[Constants::ACCESS_TOKEN]
180
+
181
+ oauthtoken.expires_in = row[Constants::EXPIRY_TIME]
182
+
183
+ return oauthtoken
184
+ end
185
+ end
186
+ end
187
+ nil
188
+ rescue Mysql2::Error => e
189
+ raise SDKException.new(Constants::TOKEN_STORE, Constants::GET_TOKEN_BY_ID_DB_ERROR, nil, e)
190
+ end
191
+ end
192
+ end
193
+ end
@@ -0,0 +1,239 @@
1
+ require 'csv'
2
+
3
+ require_relative 'token_store'
4
+ require_relative '../../../crm/api/util/constants'
5
+
6
+ module ZOHOCRMSDK
7
+ module Store
8
+ # This class stores the user token details to the file.
9
+ class FileStore < TokenStore
10
+ attr_accessor :file_path
11
+
12
+ # Creates an FileStore class instance with the specified parameters.
13
+ # @param filePath A String containing the absolute file path to store tokens.
14
+ # @raise Exception
15
+ def initialize(file_path)
16
+ @file_path = file_path
17
+
18
+ unless File.exist? @file_path
19
+ File.new(@file_path, 'w')
20
+ @csv_file = CSV.open(@file_path, 'a', write_headers: true, headers: [Constants::ID,Constants::USER_MAIL, Constants::CLIENT_ID,Constants::CLIENT_SECRET, Constants::REFRESH_TOKEN, Constants::ACCESS_TOKEN, Constants::GRANT_TOKEN, Constants::EXPIRY_TIME,Constants::REDIRECT_URL])
21
+ end
22
+ @csv_file = CSV.open(@file_path, 'a')
23
+ end
24
+
25
+ def get_token(user, token)
26
+ if token.is_a? Authenticator::OAuthToken
27
+ file_contents = CSV.read(@file_path)
28
+
29
+ grant_token = token.grant_token
30
+
31
+ refresh_token = token.refresh_token
32
+
33
+ client_id = token.client_id
34
+
35
+ user_email = user.email
36
+
37
+ if user_email.nil?
38
+ raise SDKException.new(Constants::USER_MAIL_NULL_ERROR, Constants::USER_MAIL_NULL_ERROR_MESSAGE)
39
+ end
40
+
41
+ file_contents.each do |row|
42
+ token_check = grant_token.nil? ? refresh_token == row[4] : grant_token == row[6]
43
+ if (row[1] == user_email) && (row[2] == client_id) && token_check
44
+
45
+ grant_token = (!row[6].nil? && !row[6].empty?) ? row[6] : nil
46
+
47
+ redirect_url = (!row[8].nil? && !row[8].empty?) ? row[8] : nil
48
+
49
+ oauthtoken = token
50
+
51
+ oauthtoken.id = row[0]
52
+
53
+ oauthtoken.user_mail = row[1]
54
+
55
+ oauthtoken.client_id = row[2]
56
+
57
+ oauthtoken.client_secret = row[3]
58
+
59
+ oauthtoken.refresh_token = row[4]
60
+
61
+ oauthtoken.access_token = row[5]
62
+
63
+ oauthtoken.grant_token = grant_token
64
+
65
+ oauthtoken.expires_in = row[7]
66
+
67
+ oauthtoken.redirect_url = redirect_url
68
+
69
+ return oauthtoken
70
+ end
71
+ end
72
+ end
73
+ nil
74
+ rescue StandardError => e
75
+ raise SDKException.new(Constants::TOKEN_STORE, Constants::GET_TOKEN_FILE_ERROR, nil, e)
76
+ end
77
+
78
+ def get_tokens
79
+ tokens = []
80
+ file_contents = CSV.table(@file_path)
81
+ file_contents.each do |row|
82
+ unless row == @csv_file.header_row?
83
+ grant_token = (!row[6].nil? && !row[6].empty?) ? row[6] : nil
84
+
85
+ redirect_url = (!row[8].nil? && !row[8].empty?) ? row[8] : nil
86
+
87
+ token = Authenticator::OAuthToken.new(client_id: row[2],client_secret: row[3],grant_token: grant_token,refresh_token: row[4])
88
+
89
+ token.id = row[0]
90
+
91
+ token.user_mail = row[1]
92
+
93
+ token.access_token = row[5]
94
+
95
+ token.expires_in = row[7]
96
+
97
+ token.redirect_url = redirect_url
98
+
99
+ tokens.push(token)
100
+ end
101
+ end
102
+
103
+ tokens
104
+ rescue StandardError => e
105
+ raise SDKException.new(Constants::TOKEN_STORE, Constants::GET_TOKENS_FILE_ERROR, nil, e)
106
+ end
107
+
108
+ def save_token(user, token)
109
+ if token.is_a? Authenticator::OAuthToken
110
+
111
+ token.user_mail = user.email
112
+ delete_token(token)
113
+ values_list = []
114
+
115
+ values_list.push(token.id)
116
+
117
+ values_list.push(user.email)
118
+
119
+ values_list.push(token.client_id)
120
+
121
+ values_list.push(token.client_secret)
122
+
123
+ values_list.push(token.refresh_token)
124
+
125
+ values_list.push(token.access_token)
126
+
127
+ values_list.push(token.grant_token)
128
+
129
+ values_list.push(token.expires_in)
130
+
131
+ values_list.push(token.redirect_url)
132
+ end
133
+ @csv_file = CSV.open(@file_path, 'a') if @csv_file.closed?
134
+ @csv_file << values_list
135
+ rescue StandardError => e
136
+ raise SDKException.new(Constants::TOKEN_STORE, Constants::SAVE_TOKEN_FILE_ERROR, nil, e)
137
+ ensure
138
+ @csv_file.close
139
+ end
140
+
141
+ def delete_token(token)
142
+ if token.is_a? Authenticator::OAuthToken
143
+
144
+ grant_token = token.grant_token
145
+
146
+ refresh_token = token.refresh_token
147
+
148
+ client_id = token.client_id
149
+
150
+ user_email = token.user_mail
151
+
152
+ if user_email.nil?
153
+ raise SDKException.new(Constants::USER_MAIL_NULL_ERROR, Constants::USER_MAIL_NULL_ERROR_MESSAGE)
154
+ end
155
+
156
+ table = CSV.table(@file_path)
157
+
158
+ table.delete_if do |row|
159
+ unless row == @csv_file.header_row?
160
+
161
+ token_check = grant_token.nil? ? refresh_token == row[4] : grant_token == row[6]
162
+
163
+ row[1] == user_email and row[2] == client_id and token_check
164
+ end
165
+ end
166
+
167
+ File.open(@file_path, 'w') do |f|
168
+ f.write(table.to_csv)
169
+ end
170
+ end
171
+ rescue StandardError => e
172
+ raise SDKException.new(Constants::TOKEN_STORE, Constants::DELETE_TOKEN_FILE_ERROR, nil, e)
173
+ end
174
+
175
+ def delete_tokens
176
+ table = CSV.table(@file_path)
177
+
178
+ table.delete_if do |row|
179
+ true unless row == @csv_file.header_row?
180
+ end
181
+
182
+ File.open(@file_path, 'w') do |f|
183
+ f.write(table.to_csv)
184
+ end
185
+ rescue StandardError => e
186
+ raise SDKException.new(Constants::TOKEN_STORE, Constants::DELETE_TOKENS_FILE_ERROR, nil, e)
187
+ end
188
+
189
+ def get_token_by_id(id, token)
190
+ if token.is_a? Authenticator::OAuthToken
191
+
192
+ is_row_present = false
193
+
194
+ file_contents = CSV.read(@file_path)
195
+
196
+ file_contents.each do |row|
197
+
198
+ if row[0] == id
199
+
200
+ is_row_present = true
201
+
202
+ grant_token = (!row[6].nil? && !row[6].empty?) ? row[6] : nil
203
+
204
+ redirect_url = (!row[8].nil? && !row[8].empty?) ? row[8] : nil
205
+
206
+ oauthtoken = token
207
+
208
+ oauthtoken.id = row[0]
209
+
210
+ oauthtoken.user_mail = row[1]
211
+
212
+ oauthtoken.client_id = row[2]
213
+
214
+ oauthtoken.client_secret = row[3]
215
+
216
+ oauthtoken.refresh_token = row[4]
217
+
218
+ oauthtoken.access_token = row[5]
219
+
220
+ oauthtoken.grant_token = grant_token
221
+
222
+ oauthtoken.expires_in = row[7]
223
+
224
+ oauthtoken.redirect_url = redirect_url
225
+
226
+ return oauthtoken
227
+ end
228
+ end
229
+ if !is_row_present
230
+ raise SDKException.new(Constants::TOKEN_STORE, Constants::GET_TOKEN_BY_ID_FILE_ERROR, nil, nil)
231
+ end
232
+ end
233
+ nil
234
+ rescue StandardError => e
235
+ raise SDKException.new(Constants::TOKEN_STORE, Constants::GET_TOKEN_BY_ID_FILE_ERROR, nil, e)
236
+ end
237
+ end
238
+ end
239
+ end