ZCRMSDK 1.0.2 → 3.0.0.beta

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