hubspot-api-client 3.3.0 → 7.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (335) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +25 -0
  3. data/lib/hubspot-api-client.rb +69 -0
  4. data/lib/hubspot/codegen/cms/audit-logs/api/default_api.rb +106 -0
  5. data/lib/hubspot/codegen/cms/audit-logs/api_client.rb +422 -0
  6. data/lib/hubspot/codegen/cms/audit-logs/api_error.rb +61 -0
  7. data/lib/hubspot/codegen/cms/audit-logs/configuration.rb +258 -0
  8. data/lib/hubspot/codegen/cms/audit-logs/models/collection_response_public_audit_log.rb +226 -0
  9. data/lib/hubspot/codegen/cms/audit-logs/models/error.rb +292 -0
  10. data/lib/hubspot/codegen/cms/audit-logs/models/error_detail.rb +258 -0
  11. data/lib/hubspot/codegen/cms/audit-logs/models/next_page.rb +224 -0
  12. data/lib/hubspot/codegen/cms/audit-logs/models/paging.rb +210 -0
  13. data/lib/hubspot/codegen/cms/audit-logs/models/public_audit_log.rb +352 -0
  14. data/lib/hubspot/codegen/cms/domains/api/domains_api.rb +183 -0
  15. data/lib/hubspot/codegen/cms/domains/api_client.rb +422 -0
  16. data/lib/hubspot/codegen/cms/domains/api_error.rb +61 -0
  17. data/lib/hubspot/codegen/cms/domains/configuration.rb +258 -0
  18. data/lib/hubspot/codegen/cms/domains/models/collection_response_with_total_domain.rb +240 -0
  19. data/lib/hubspot/codegen/cms/domains/models/domain.rb +1091 -0
  20. data/lib/hubspot/codegen/cms/domains/models/domain_cdn_config.rb +497 -0
  21. data/lib/hubspot/codegen/cms/domains/models/domain_setup_info.rb +231 -0
  22. data/lib/hubspot/codegen/cms/domains/models/error.rb +292 -0
  23. data/lib/hubspot/codegen/cms/domains/models/error_detail.rb +258 -0
  24. data/lib/hubspot/codegen/cms/domains/models/next_page.rb +224 -0
  25. data/lib/hubspot/codegen/cms/domains/models/paging.rb +210 -0
  26. data/lib/hubspot/codegen/cms/performance/api/default_api.rb +186 -0
  27. data/lib/hubspot/codegen/cms/performance/api_client.rb +422 -0
  28. data/lib/hubspot/codegen/cms/performance/api_error.rb +61 -0
  29. data/lib/hubspot/codegen/cms/performance/configuration.rb +251 -0
  30. data/lib/hubspot/codegen/cms/performance/models/error.rb +292 -0
  31. data/lib/hubspot/codegen/cms/performance/models/error_detail.rb +258 -0
  32. data/lib/hubspot/codegen/cms/performance/models/performance_view.rb +528 -0
  33. data/lib/hubspot/codegen/cms/performance/models/public_performance_response.rb +332 -0
  34. data/lib/hubspot/codegen/cms/site-search/api/default_api.rb +225 -0
  35. data/lib/hubspot/codegen/cms/site-search/api_client.rb +422 -0
  36. data/lib/hubspot/codegen/cms/site-search/api_error.rb +61 -0
  37. data/lib/hubspot/codegen/cms/site-search/configuration.rb +258 -0
  38. data/lib/hubspot/codegen/cms/site-search/models/content_search_result.rb +427 -0
  39. data/lib/hubspot/codegen/cms/site-search/models/error.rb +292 -0
  40. data/lib/hubspot/codegen/cms/site-search/models/error_detail.rb +258 -0
  41. data/lib/hubspot/codegen/cms/site-search/models/indexed_data.rb +279 -0
  42. data/lib/hubspot/codegen/cms/site-search/models/public_search_results.rb +282 -0
  43. data/lib/hubspot/codegen/cms/site-search/models/search_hit_field.rb +259 -0
  44. data/lib/hubspot/codegen/cms/url-redirects/api/redirects_api.rb +368 -0
  45. data/lib/hubspot/codegen/cms/url-redirects/api_client.rb +422 -0
  46. data/lib/hubspot/codegen/cms/url-redirects/api_error.rb +61 -0
  47. data/lib/hubspot/codegen/cms/url-redirects/configuration.rb +258 -0
  48. data/lib/hubspot/codegen/cms/url-redirects/models/collection_response_with_total_url_mapping.rb +242 -0
  49. data/lib/hubspot/codegen/cms/url-redirects/models/error.rb +292 -0
  50. data/lib/hubspot/codegen/cms/url-redirects/models/error_detail.rb +258 -0
  51. data/lib/hubspot/codegen/cms/url-redirects/models/next_page.rb +224 -0
  52. data/lib/hubspot/codegen/cms/url-redirects/models/paging.rb +210 -0
  53. data/lib/hubspot/codegen/cms/url-redirects/models/url_mapping.rb +596 -0
  54. data/lib/hubspot/codegen/cms/url-redirects/models/url_mapping_create_request_body.rb +306 -0
  55. data/lib/hubspot/codegen/crm/companies/api/associations_api.rb +2 -2
  56. data/lib/hubspot/codegen/crm/companies/api/basic_api.rb +20 -12
  57. data/lib/hubspot/codegen/crm/companies/api/batch_api.rb +40 -24
  58. data/lib/hubspot/codegen/crm/companies/api/search_api.rb +10 -6
  59. data/lib/hubspot/codegen/crm/companies/models/batch_read_input_simple_public_object_id.rb +20 -20
  60. data/lib/hubspot/codegen/crm/companies/models/batch_response_simple_public_object.rb +29 -38
  61. data/lib/hubspot/codegen/crm/companies/models/batch_response_simple_public_object_with_errors.rb +333 -0
  62. data/lib/hubspot/codegen/crm/companies/models/filter.rb +15 -15
  63. data/lib/hubspot/codegen/crm/companies/models/simple_public_object_batch_input.rb +18 -18
  64. data/lib/hubspot/codegen/crm/contacts/api/associations_api.rb +2 -2
  65. data/lib/hubspot/codegen/crm/contacts/api/basic_api.rb +20 -12
  66. data/lib/hubspot/codegen/crm/contacts/api/batch_api.rb +40 -24
  67. data/lib/hubspot/codegen/crm/contacts/api/search_api.rb +10 -6
  68. data/lib/hubspot/codegen/crm/contacts/models/batch_read_input_simple_public_object_id.rb +20 -20
  69. data/lib/hubspot/codegen/crm/contacts/models/batch_response_simple_public_object.rb +29 -38
  70. data/lib/hubspot/codegen/crm/contacts/models/batch_response_simple_public_object_with_errors.rb +333 -0
  71. data/lib/hubspot/codegen/crm/contacts/models/filter.rb +15 -15
  72. data/lib/hubspot/codegen/crm/contacts/models/simple_public_object_batch_input.rb +18 -18
  73. data/lib/hubspot/codegen/crm/deals/api/associations_api.rb +2 -2
  74. data/lib/hubspot/codegen/crm/deals/api/basic_api.rb +20 -12
  75. data/lib/hubspot/codegen/crm/deals/api/batch_api.rb +40 -24
  76. data/lib/hubspot/codegen/crm/deals/api/search_api.rb +10 -6
  77. data/lib/hubspot/codegen/crm/deals/models/batch_read_input_simple_public_object_id.rb +20 -20
  78. data/lib/hubspot/codegen/crm/deals/models/batch_response_simple_public_object.rb +29 -38
  79. data/lib/hubspot/codegen/crm/deals/models/batch_response_simple_public_object_with_errors.rb +333 -0
  80. data/lib/hubspot/codegen/crm/deals/models/filter.rb +15 -15
  81. data/lib/hubspot/codegen/crm/deals/models/simple_public_object_batch_input.rb +18 -18
  82. data/lib/hubspot/codegen/crm/extensions/cards/configuration.rb +0 -7
  83. data/lib/hubspot/codegen/crm/line_items/api/associations_api.rb +2 -2
  84. data/lib/hubspot/codegen/crm/line_items/api/basic_api.rb +20 -12
  85. data/lib/hubspot/codegen/crm/line_items/api/batch_api.rb +40 -24
  86. data/lib/hubspot/codegen/crm/line_items/api/search_api.rb +10 -6
  87. data/lib/hubspot/codegen/crm/line_items/models/batch_read_input_simple_public_object_id.rb +20 -20
  88. data/lib/hubspot/codegen/crm/line_items/models/batch_response_simple_public_object.rb +29 -38
  89. data/lib/hubspot/codegen/crm/line_items/models/batch_response_simple_public_object_with_errors.rb +333 -0
  90. data/lib/hubspot/codegen/crm/line_items/models/filter.rb +15 -15
  91. data/lib/hubspot/codegen/crm/line_items/models/simple_public_object_batch_input.rb +18 -18
  92. data/lib/hubspot/codegen/crm/owners/api/default_api.rb +0 -2
  93. data/lib/hubspot/codegen/crm/products/api/associations_api.rb +2 -2
  94. data/lib/hubspot/codegen/crm/products/api/basic_api.rb +20 -12
  95. data/lib/hubspot/codegen/crm/products/api/batch_api.rb +40 -24
  96. data/lib/hubspot/codegen/crm/products/api/search_api.rb +10 -6
  97. data/lib/hubspot/codegen/crm/products/models/batch_read_input_simple_public_object_id.rb +20 -20
  98. data/lib/hubspot/codegen/crm/products/models/batch_response_simple_public_object.rb +29 -38
  99. data/lib/hubspot/codegen/crm/products/models/batch_response_simple_public_object_with_errors.rb +333 -0
  100. data/lib/hubspot/codegen/crm/products/models/filter.rb +15 -15
  101. data/lib/hubspot/codegen/crm/products/models/simple_public_object_batch_input.rb +18 -18
  102. data/lib/hubspot/codegen/crm/properties/api/batch_api.rb +30 -18
  103. data/lib/hubspot/codegen/crm/properties/api/core_api.rb +20 -12
  104. data/lib/hubspot/codegen/crm/properties/api/groups_api.rb +20 -12
  105. data/lib/hubspot/codegen/crm/properties/models/batch_read_input_property_name.rb +18 -18
  106. data/lib/hubspot/codegen/crm/properties/models/batch_response_property.rb +29 -23
  107. data/lib/hubspot/codegen/crm/properties/models/property_create.rb +14 -4
  108. data/lib/hubspot/codegen/crm/properties/models/property_update.rb +14 -4
  109. data/lib/hubspot/codegen/crm/quotes/api/associations_api.rb +1 -157
  110. data/lib/hubspot/codegen/crm/quotes/api/basic_api.rb +2 -190
  111. data/lib/hubspot/codegen/crm/quotes/api/batch_api.rb +11 -187
  112. data/lib/hubspot/codegen/crm/quotes/api/default_api.rb +426 -0
  113. data/lib/hubspot/codegen/crm/quotes/api/search_api.rb +11 -7
  114. data/lib/hubspot/codegen/crm/quotes/models/batch_read_input_simple_public_object_id.rb +20 -20
  115. data/lib/hubspot/codegen/crm/quotes/models/batch_response_simple_public_object.rb +29 -38
  116. data/lib/hubspot/codegen/crm/quotes/models/batch_response_simple_public_object_with_errors.rb +333 -0
  117. data/lib/hubspot/codegen/crm/quotes/models/filter.rb +15 -15
  118. data/lib/hubspot/codegen/crm/quotes/models/simple_public_object_batch_input.rb +18 -18
  119. data/lib/hubspot/codegen/crm/tickets/api/associations_api.rb +2 -2
  120. data/lib/hubspot/codegen/crm/tickets/api/basic_api.rb +20 -12
  121. data/lib/hubspot/codegen/crm/tickets/api/batch_api.rb +40 -24
  122. data/lib/hubspot/codegen/crm/tickets/api/search_api.rb +10 -6
  123. data/lib/hubspot/codegen/crm/tickets/models/batch_read_input_simple_public_object_id.rb +20 -20
  124. data/lib/hubspot/codegen/crm/tickets/models/batch_response_simple_public_object.rb +29 -38
  125. data/lib/hubspot/codegen/crm/tickets/models/batch_response_simple_public_object_with_errors.rb +333 -0
  126. data/lib/hubspot/codegen/crm/tickets/models/filter.rb +15 -15
  127. data/lib/hubspot/codegen/crm/tickets/models/simple_public_object_batch_input.rb +18 -18
  128. data/lib/hubspot/codegen/oauth/configuration.rb +0 -14
  129. data/lib/hubspot/codegen/webhooks/api/subscriptions_api.rb +16 -12
  130. data/lib/hubspot/codegen/webhooks/configuration.rb +0 -7
  131. data/lib/hubspot/codegen/webhooks/models/batch_response_subscription_response.rb +1 -21
  132. data/lib/hubspot/codegen/webhooks/models/batch_response_subscription_response_with_errors.rb +331 -0
  133. data/lib/hubspot/codegen/webhooks/models/settings_response.rb +28 -28
  134. data/lib/hubspot/codegen/webhooks/models/subscription_create_request.rb +16 -13
  135. data/lib/hubspot/codegen/webhooks/models/subscription_patch_request.rb +7 -7
  136. data/lib/hubspot/codegen/webhooks/models/subscription_response.rb +45 -39
  137. data/lib/hubspot/version.rb +1 -1
  138. data/sample-apps/search-result-paging-app/.env.template +4 -0
  139. data/sample-apps/search-result-paging-app/.gitignore +35 -0
  140. data/sample-apps/search-result-paging-app/.rspec +1 -0
  141. data/sample-apps/search-result-paging-app/.ruby-version +1 -0
  142. data/sample-apps/search-result-paging-app/Dockerfile +22 -0
  143. data/sample-apps/search-result-paging-app/Gemfile +35 -0
  144. data/sample-apps/search-result-paging-app/Gemfile.lock +279 -0
  145. data/sample-apps/search-result-paging-app/README.md +0 -0
  146. data/sample-apps/search-result-paging-app/Rakefile +6 -0
  147. data/sample-apps/search-result-paging-app/app/assets/config/manifest.js +3 -0
  148. data/sample-apps/search-result-paging-app/app/assets/images/.keep +0 -0
  149. data/sample-apps/search-result-paging-app/app/assets/javascripts/application.js +25 -0
  150. data/sample-apps/search-result-paging-app/app/assets/javascripts/cable.js +13 -0
  151. data/sample-apps/search-result-paging-app/app/assets/javascripts/channels/.keep +0 -0
  152. data/sample-apps/search-result-paging-app/app/assets/stylesheets/application.css +77 -0
  153. data/sample-apps/search-result-paging-app/app/controllers/application_controller.rb +12 -0
  154. data/sample-apps/search-result-paging-app/app/controllers/concerns/.keep +0 -0
  155. data/sample-apps/search-result-paging-app/app/controllers/concerns/exception_handler.rb +12 -0
  156. data/sample-apps/search-result-paging-app/app/controllers/home_controller.rb +14 -0
  157. data/sample-apps/search-result-paging-app/app/controllers/oauth/authorization_controller.rb +19 -0
  158. data/sample-apps/search-result-paging-app/app/helpers/application_helper.rb +2 -0
  159. data/sample-apps/search-result-paging-app/app/lib/services/hubspot/authorization/authorize.rb +17 -0
  160. data/sample-apps/search-result-paging-app/app/lib/services/hubspot/authorization/get_authorization_uri.rb +35 -0
  161. data/sample-apps/search-result-paging-app/app/lib/services/hubspot/authorization/tokens/base.rb +21 -0
  162. data/sample-apps/search-result-paging-app/app/lib/services/hubspot/authorization/tokens/generate.rb +28 -0
  163. data/sample-apps/search-result-paging-app/app/lib/services/hubspot/authorization/tokens/refresh.rb +35 -0
  164. data/sample-apps/search-result-paging-app/app/lib/services/hubspot/contacts/get_page.rb +26 -0
  165. data/sample-apps/search-result-paging-app/app/lib/services/hubspot/contacts/search.rb +35 -0
  166. data/sample-apps/search-result-paging-app/app/lib/services/hubspot/properties/create.rb +23 -0
  167. data/sample-apps/search-result-paging-app/app/lib/services/hubspot/properties/destroy.rb +16 -0
  168. data/sample-apps/search-result-paging-app/app/models/application_record.rb +3 -0
  169. data/sample-apps/search-result-paging-app/app/models/concerns/.keep +0 -0
  170. data/sample-apps/search-result-paging-app/app/views/home/index.html.erb +13 -0
  171. data/sample-apps/search-result-paging-app/app/views/layouts/application.html.erb +23 -0
  172. data/sample-apps/search-result-paging-app/app/views/oauth/authorization/login.html.erb +15 -0
  173. data/sample-apps/search-result-paging-app/app/views/shared/_header.html.erb +18 -0
  174. data/sample-apps/search-result-paging-app/bin/bundle +3 -0
  175. data/sample-apps/search-result-paging-app/bin/rails +9 -0
  176. data/sample-apps/search-result-paging-app/bin/rake +9 -0
  177. data/sample-apps/search-result-paging-app/bin/setup +36 -0
  178. data/sample-apps/search-result-paging-app/bin/spring +17 -0
  179. data/sample-apps/search-result-paging-app/bin/update +31 -0
  180. data/sample-apps/search-result-paging-app/bin/yarn +11 -0
  181. data/sample-apps/search-result-paging-app/config.ru +5 -0
  182. data/sample-apps/search-result-paging-app/config/application.rb +19 -0
  183. data/sample-apps/search-result-paging-app/config/boot.rb +3 -0
  184. data/sample-apps/search-result-paging-app/config/cable.yml +10 -0
  185. data/sample-apps/search-result-paging-app/config/database.yml +25 -0
  186. data/sample-apps/search-result-paging-app/config/environment.rb +5 -0
  187. data/sample-apps/search-result-paging-app/config/environments/development.rb +61 -0
  188. data/sample-apps/search-result-paging-app/config/environments/production.rb +94 -0
  189. data/sample-apps/search-result-paging-app/config/environments/test.rb +46 -0
  190. data/sample-apps/search-result-paging-app/config/initializers/assets.rb +14 -0
  191. data/sample-apps/search-result-paging-app/config/initializers/filter_parameter_logging.rb +4 -0
  192. data/sample-apps/search-result-paging-app/config/initializers/hubspot-api-client.rb +3 -0
  193. data/sample-apps/search-result-paging-app/config/initializers/mime_types.rb +1 -0
  194. data/sample-apps/search-result-paging-app/config/initializers/wrap_parameters.rb +14 -0
  195. data/sample-apps/search-result-paging-app/config/locales/en.yml +33 -0
  196. data/sample-apps/search-result-paging-app/config/puma.rb +34 -0
  197. data/sample-apps/search-result-paging-app/config/routes.rb +7 -0
  198. data/sample-apps/search-result-paging-app/config/spring.rb +6 -0
  199. data/sample-apps/search-result-paging-app/db/seeds.rb +7 -0
  200. data/sample-apps/search-result-paging-app/docker-compose.yml +11 -0
  201. data/sample-apps/search-result-paging-app/docker-entrypoint.sh +8 -0
  202. data/sample-apps/search-result-paging-app/lib/assets/.keep +0 -0
  203. data/sample-apps/search-result-paging-app/lib/tasks/.keep +0 -0
  204. data/sample-apps/search-result-paging-app/lib/tasks/search_contacts.rake +36 -0
  205. data/sample-apps/search-result-paging-app/log/.keep +0 -0
  206. data/sample-apps/search-result-paging-app/package.json +5 -0
  207. data/sample-apps/search-result-paging-app/public/404.html +67 -0
  208. data/sample-apps/search-result-paging-app/public/422.html +67 -0
  209. data/sample-apps/search-result-paging-app/public/500.html +66 -0
  210. data/sample-apps/search-result-paging-app/public/apple-touch-icon-precomposed.png +0 -0
  211. data/sample-apps/search-result-paging-app/public/apple-touch-icon.png +0 -0
  212. data/sample-apps/search-result-paging-app/public/favicon.ico +0 -0
  213. data/sample-apps/search-result-paging-app/public/robots.txt +1 -0
  214. data/sample-apps/search-result-paging-app/tmp/.keep +0 -0
  215. data/sample-apps/trello-integration-app/.env.template +7 -0
  216. data/sample-apps/trello-integration-app/.gitignore +35 -0
  217. data/sample-apps/trello-integration-app/.rspec +1 -0
  218. data/sample-apps/trello-integration-app/.ruby-version +1 -0
  219. data/sample-apps/trello-integration-app/Dockerfile +22 -0
  220. data/sample-apps/trello-integration-app/Gemfile +38 -0
  221. data/sample-apps/trello-integration-app/Gemfile.lock +314 -0
  222. data/sample-apps/trello-integration-app/README.md +31 -0
  223. data/sample-apps/trello-integration-app/Rakefile +6 -0
  224. data/sample-apps/trello-integration-app/app/assets/config/manifest.js +3 -0
  225. data/sample-apps/trello-integration-app/app/assets/images/.keep +0 -0
  226. data/sample-apps/trello-integration-app/app/assets/images/right-arrow.png +0 -0
  227. data/sample-apps/trello-integration-app/app/assets/javascripts/application.js +22 -0
  228. data/sample-apps/trello-integration-app/app/assets/javascripts/cable.js +13 -0
  229. data/sample-apps/trello-integration-app/app/assets/javascripts/channels/.keep +0 -0
  230. data/sample-apps/trello-integration-app/app/assets/javascripts/jquery-spinner.min.js +11071 -0
  231. data/sample-apps/trello-integration-app/app/assets/javascripts/lodash.js +15972 -0
  232. data/sample-apps/trello-integration-app/app/assets/javascripts/mappings.js +78 -0
  233. data/sample-apps/trello-integration-app/app/assets/javascripts/typeahead.bundle.min.js +8 -0
  234. data/sample-apps/trello-integration-app/app/assets/stylesheets/application.css +46 -0
  235. data/sample-apps/trello-integration-app/app/assets/stylesheets/authorization.scss +34 -0
  236. data/sample-apps/trello-integration-app/app/assets/stylesheets/jquery-spinner.css +33 -0
  237. data/sample-apps/trello-integration-app/app/assets/stylesheets/mappings.scss +55 -0
  238. data/sample-apps/trello-integration-app/app/assets/stylesheets/navigation.scss +43 -0
  239. data/sample-apps/trello-integration-app/app/assets/stylesheets/search_frame.scss +81 -0
  240. data/sample-apps/trello-integration-app/app/controllers/application_controller.rb +38 -0
  241. data/sample-apps/trello-integration-app/app/controllers/concerns/.keep +0 -0
  242. data/sample-apps/trello-integration-app/app/controllers/concerns/exception_handler.rb +12 -0
  243. data/sample-apps/trello-integration-app/app/controllers/home_controller.rb +20 -0
  244. data/sample-apps/trello-integration-app/app/controllers/mappings_controller.rb +64 -0
  245. data/sample-apps/trello-integration-app/app/controllers/oauth/authorization_controller.rb +28 -0
  246. data/sample-apps/trello-integration-app/app/controllers/trello/cards_controller.rb +94 -0
  247. data/sample-apps/trello-integration-app/app/controllers/trello/webhooks_controller.rb +30 -0
  248. data/sample-apps/trello-integration-app/app/helpers/application_helper.rb +2 -0
  249. data/sample-apps/trello-integration-app/app/helpers/oauth/authorization_helper.rb +11 -0
  250. data/sample-apps/trello-integration-app/app/lib/services/hubspot/authorization/authorize.rb +17 -0
  251. data/sample-apps/trello-integration-app/app/lib/services/hubspot/authorization/get_authorization_uri.rb +35 -0
  252. data/sample-apps/trello-integration-app/app/lib/services/hubspot/authorization/tokens/base.rb +21 -0
  253. data/sample-apps/trello-integration-app/app/lib/services/hubspot/authorization/tokens/generate.rb +28 -0
  254. data/sample-apps/trello-integration-app/app/lib/services/hubspot/authorization/tokens/refresh.rb +35 -0
  255. data/sample-apps/trello-integration-app/app/lib/services/hubspot/deals/get_by_id.rb +15 -0
  256. data/sample-apps/trello-integration-app/app/lib/services/hubspot/deals/update.rb +17 -0
  257. data/sample-apps/trello-integration-app/app/lib/services/hubspot/extensions_cards/create.rb +82 -0
  258. data/sample-apps/trello-integration-app/app/lib/services/hubspot/pipelines/get_all.rb +11 -0
  259. data/sample-apps/trello-integration-app/app/lib/services/hubspot/pipelines/get_by_id.rb +15 -0
  260. data/sample-apps/trello-integration-app/app/lib/services/trello/authorization/authorize.rb +20 -0
  261. data/sample-apps/trello-integration-app/app/lib/services/trello/boards/get_all.rb +11 -0
  262. data/sample-apps/trello-integration-app/app/lib/services/trello/boards/get_by_id.rb +19 -0
  263. data/sample-apps/trello-integration-app/app/lib/services/trello/cards/format.rb +78 -0
  264. data/sample-apps/trello-integration-app/app/lib/services/trello/cards/get_by_id.rb +15 -0
  265. data/sample-apps/trello-integration-app/app/lib/services/trello/cards/search.rb +15 -0
  266. data/sample-apps/trello-integration-app/app/lib/services/trello/webhooks/create.rb +31 -0
  267. data/sample-apps/trello-integration-app/app/lib/services/trello/webhooks/delete.rb +17 -0
  268. data/sample-apps/trello-integration-app/app/lib/services/trello/webhooks/update.rb +19 -0
  269. data/sample-apps/trello-integration-app/app/models/application_record.rb +3 -0
  270. data/sample-apps/trello-integration-app/app/models/concerns/.keep +0 -0
  271. data/sample-apps/trello-integration-app/app/models/deal_association.rb +2 -0
  272. data/sample-apps/trello-integration-app/app/models/extension_card.rb +4 -0
  273. data/sample-apps/trello-integration-app/app/models/hubspot_token.rb +19 -0
  274. data/sample-apps/trello-integration-app/app/models/mapping.rb +2 -0
  275. data/sample-apps/trello-integration-app/app/models/trello_token.rb +19 -0
  276. data/sample-apps/trello-integration-app/app/models/webhook.rb +2 -0
  277. data/sample-apps/trello-integration-app/app/views/home/index.html.erb +23 -0
  278. data/sample-apps/trello-integration-app/app/views/home/success.html.erb +11 -0
  279. data/sample-apps/trello-integration-app/app/views/layouts/application.html.erb +23 -0
  280. data/sample-apps/trello-integration-app/app/views/mappings/_mapping.html.erb +13 -0
  281. data/sample-apps/trello-integration-app/app/views/mappings/index.html.erb +44 -0
  282. data/sample-apps/trello-integration-app/app/views/oauth/authorization/login.html.erb +42 -0
  283. data/sample-apps/trello-integration-app/app/views/shared/_header.html.erb +15 -0
  284. data/sample-apps/trello-integration-app/app/views/trello/cards/search_frame.html.erb +69 -0
  285. data/sample-apps/trello-integration-app/app/views/trello/cards/search_frame_success.html.erb +7 -0
  286. data/sample-apps/trello-integration-app/bin/bundle +3 -0
  287. data/sample-apps/trello-integration-app/bin/rails +9 -0
  288. data/sample-apps/trello-integration-app/bin/rake +9 -0
  289. data/sample-apps/trello-integration-app/bin/setup +36 -0
  290. data/sample-apps/trello-integration-app/bin/spring +17 -0
  291. data/sample-apps/trello-integration-app/bin/update +31 -0
  292. data/sample-apps/trello-integration-app/bin/yarn +11 -0
  293. data/sample-apps/trello-integration-app/config.ru +5 -0
  294. data/sample-apps/trello-integration-app/config/application.rb +20 -0
  295. data/sample-apps/trello-integration-app/config/boot.rb +3 -0
  296. data/sample-apps/trello-integration-app/config/cable.yml +10 -0
  297. data/sample-apps/trello-integration-app/config/database.yml +16 -0
  298. data/sample-apps/trello-integration-app/config/environment.rb +5 -0
  299. data/sample-apps/trello-integration-app/config/environments/development.rb +61 -0
  300. data/sample-apps/trello-integration-app/config/environments/production.rb +94 -0
  301. data/sample-apps/trello-integration-app/config/environments/test.rb +46 -0
  302. data/sample-apps/trello-integration-app/config/initializers/assets.rb +14 -0
  303. data/sample-apps/trello-integration-app/config/initializers/filter_parameter_logging.rb +4 -0
  304. data/sample-apps/trello-integration-app/config/initializers/hubspot-api-client.rb +3 -0
  305. data/sample-apps/trello-integration-app/config/initializers/mime_types.rb +1 -0
  306. data/sample-apps/trello-integration-app/config/initializers/omniauth.rb +11 -0
  307. data/sample-apps/trello-integration-app/config/initializers/trello.rb +1 -0
  308. data/sample-apps/trello-integration-app/config/initializers/wrap_parameters.rb +14 -0
  309. data/sample-apps/trello-integration-app/config/locales/en.yml +33 -0
  310. data/sample-apps/trello-integration-app/config/puma.rb +34 -0
  311. data/sample-apps/trello-integration-app/config/routes.rb +29 -0
  312. data/sample-apps/trello-integration-app/config/spring.rb +6 -0
  313. data/sample-apps/trello-integration-app/config/storage.yml +34 -0
  314. data/sample-apps/trello-integration-app/db/migrate/20200624132327_create_hubspot_tokens.rb +10 -0
  315. data/sample-apps/trello-integration-app/db/migrate/20200624132336_create_trello_tokens.rb +8 -0
  316. data/sample-apps/trello-integration-app/db/migrate/20200624132337_create_deal_associations.rb +8 -0
  317. data/sample-apps/trello-integration-app/db/migrate/20200702130530_create_extension_cards.rb +8 -0
  318. data/sample-apps/trello-integration-app/db/migrate/20200715143913_create_mappings.rb +12 -0
  319. data/sample-apps/trello-integration-app/db/migrate/20200727083656_create_webhooks.rb +9 -0
  320. data/sample-apps/trello-integration-app/db/schema.rb +52 -0
  321. data/sample-apps/trello-integration-app/db/seeds.rb +7 -0
  322. data/sample-apps/trello-integration-app/docker-compose.yml +41 -0
  323. data/sample-apps/trello-integration-app/docker-entrypoint.sh +8 -0
  324. data/sample-apps/trello-integration-app/lib/assets/.keep +0 -0
  325. data/sample-apps/trello-integration-app/lib/middlewares/trello_payload_params_handler.rb +18 -0
  326. data/sample-apps/trello-integration-app/lib/tasks/.keep +0 -0
  327. data/sample-apps/trello-integration-app/log/.keep +0 -0
  328. data/sample-apps/trello-integration-app/package.json +5 -0
  329. data/sample-apps/trello-integration-app/public/404.html +67 -0
  330. data/sample-apps/trello-integration-app/public/422.html +67 -0
  331. data/sample-apps/trello-integration-app/public/500.html +66 -0
  332. data/sample-apps/trello-integration-app/public/favicon.ico +0 -0
  333. data/sample-apps/trello-integration-app/public/robots.txt +1 -0
  334. data/sample-apps/trello-integration-app/tmp/.keep +0 -0
  335. metadata +535 -2
@@ -0,0 +1,12 @@
1
+ class ApplicationController < ActionController::Base
2
+ include ExceptionHandler
3
+
4
+ before_action :check_env_variables
5
+
6
+ private
7
+
8
+ def check_env_variables
9
+ missing_vars = %w[HUBSPOT_CLIENT_ID HUBSPOT_CLIENT_SECRET].select { |var| ENV[var].blank? }
10
+ raise(ExceptionHandler::HubspotError.new, "Please specify #{missing_vars.join(', ')} in .env") if missing_vars.present?
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ module ExceptionHandler
2
+ extend ActiveSupport::Concern
3
+
4
+ class HubspotError < StandardError; end
5
+
6
+ included do
7
+ rescue_from HubspotError do |error|
8
+ @error = error
9
+ render template: 'home/index'
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,14 @@
1
+ class HomeController < ApplicationController
2
+ before_action :authorize
3
+
4
+ def index;end
5
+
6
+ private
7
+
8
+ def authorize
9
+ redirect_to login_path and return if session['tokens'].blank?
10
+
11
+ session['tokens'] = Services::Hubspot::Authorization::Tokens::Refresh.new(tokens: session['tokens'], request: request).call
12
+ Services::Hubspot::Authorization::Authorize.new(tokens: session['tokens']).call
13
+ end
14
+ end
@@ -0,0 +1,19 @@
1
+ module Oauth
2
+ class AuthorizationController < ApplicationController
3
+ def authorize
4
+ url = Services::Hubspot::Authorization::GetAuthorizationUri.new(request: request).call
5
+ redirect_to url
6
+ end
7
+
8
+ def callback
9
+ session[:tokens] = Services::Hubspot::Authorization::Tokens::Generate.new(
10
+ code: params[:code],
11
+ request: request
12
+ ).call
13
+ Services::Hubspot::Authorization::Authorize.new(tokens: session[:tokens]).call
14
+ redirect_to '/'
15
+ end
16
+
17
+ def login;end
18
+ end
19
+ end
@@ -0,0 +1,2 @@
1
+ module ApplicationHelper
2
+ end
@@ -0,0 +1,17 @@
1
+ module Services
2
+ module Hubspot
3
+ module Authorization
4
+ class Authorize
5
+ def initialize(tokens:)
6
+ @tokens = tokens
7
+ end
8
+
9
+ def call
10
+ ::Hubspot.configure do |config|
11
+ config.access_token = @tokens[:access_token]
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,35 @@
1
+ module Services
2
+ module Hubspot
3
+ module Authorization
4
+ class GetAuthorizationUri
5
+ CALLBACK_PATH = '/oauth/callback'.freeze
6
+
7
+ def initialize(request:)
8
+ @request = request
9
+ end
10
+
11
+ def call
12
+ check_presence_of_credentials
13
+
14
+ ::Hubspot::OAuthHelper.authorize_url(
15
+ client_id: ENV['HUBSPOT_CLIENT_ID'],
16
+ redirect_uri: redirect_uri,
17
+ scope: %w[contacts]
18
+ )
19
+ end
20
+
21
+ private
22
+
23
+ def redirect_uri
24
+ @request.protocol + @request.host_with_port + CALLBACK_PATH
25
+ end
26
+
27
+ def check_presence_of_credentials
28
+ return if ENV['HUBSPOT_CLIENT_ID'].present?
29
+
30
+ raise(ExceptionHandler::HubspotError.new, 'Please specify HUBSPOT_CLIENT_ID in .env')
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,21 @@
1
+ module Services
2
+ module Hubspot
3
+ module Authorization
4
+ module Tokens
5
+ class Base
6
+ CALLBACK_PATH = '/oauth/callback'.freeze
7
+
8
+ def expires_at(expires_in)
9
+ Time.current + (expires_in * 0.95).round
10
+ end
11
+
12
+ private
13
+
14
+ def redirect_uri
15
+ @request.protocol + @request.host_with_port + CALLBACK_PATH
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,28 @@
1
+ module Services
2
+ module Hubspot
3
+ module Authorization
4
+ module Tokens
5
+ class Generate < Tokens::Base
6
+ def initialize(code:, request:)
7
+ @code = code
8
+ @request = request
9
+ end
10
+
11
+ def call
12
+ default_api = ::Hubspot::OAuth::DefaultApi.new
13
+ tokens = default_api.create_token(
14
+ grant_type: :authorization_code,
15
+ code: @code,
16
+ redirect_uri: redirect_uri,
17
+ client_id: ENV['HUBSPOT_CLIENT_ID'],
18
+ client_secret: ENV['HUBSPOT_CLIENT_SECRET'],
19
+ return_type: 'Object'
20
+ )
21
+ tokens[:expires_at] = expires_at(tokens[:expires_in])
22
+ tokens
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,35 @@
1
+ module Services
2
+ module Hubspot
3
+ module Authorization
4
+ module Tokens
5
+ class Refresh < Tokens::Base
6
+ def initialize(tokens:, request:)
7
+ @tokens = tokens
8
+ @request = request
9
+ end
10
+
11
+ def call
12
+ @tokens = refresh_tokens if Time.current > @tokens[:expires_at]
13
+ @tokens
14
+ end
15
+
16
+ private
17
+
18
+ def refresh_tokens
19
+ default_api = ::Hubspot::OAuth::DefaultApi.new
20
+ tokens = default_api.create_token(
21
+ grant_type: :refresh_token,
22
+ refresh_token: @tokens[:refresh_token],
23
+ redirect_uri: redirect_uri,
24
+ client_id: ENV['HUBSPOT_CLIENT_ID'],
25
+ client_secret: ENV['HUBSPOT_CLIENT_SECRET'],
26
+ return_type: 'Object'
27
+ )
28
+ tokens[:expires_at] = expires_at(tokens[:expires_in])
29
+ tokens
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,26 @@
1
+ module Services
2
+ module Hubspot
3
+ module Contacts
4
+ class GetPage
5
+ def initialize(limit: 10)
6
+ @limit = limit
7
+ end
8
+
9
+ def call
10
+ basic_api = ::Hubspot::Crm::Contacts::BasicApi.new
11
+ results = basic_api.get_page(auth_names: 'oauth2', limit: @limit).results
12
+ results = add_fullnames(results)
13
+ end
14
+
15
+ private
16
+
17
+ def add_fullnames(contacts)
18
+ contacts.each do |contact|
19
+ fullname = [contact.properties['firstname'], contact.properties['lastname']].reject(&:empty?).join(' ')
20
+ contact.properties['fullname'] = fullname
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,35 @@
1
+ module Services
2
+ module Hubspot
3
+ module Contacts
4
+ class Search
5
+ def initialize(after:, limit:, search_query:, search_api: nil)
6
+ @after = after
7
+ @limit = limit
8
+ @search_query = search_query
9
+ @search_api = search_api.nil? ? ::Hubspot::Crm::Contacts::SearchApi.new : search_api
10
+ end
11
+
12
+ def call
13
+ @search_api.do_search(body: search_request, auth_names: 'oauth2').results
14
+ end
15
+
16
+ private
17
+
18
+ def search_request
19
+ filter = ::Hubspot::Crm::Contacts::Filter.new(
20
+ property_name: 'hs_object_id',
21
+ operator: 'GT',
22
+ value: @after
23
+ )
24
+ filter_group = ::Hubspot::Crm::Contacts::FilterGroup.new(filters: [filter])
25
+ ::Hubspot::Crm::Contacts::PublicObjectSearchRequest.new(
26
+ query: @search_query,
27
+ limit: @limit,
28
+ filter_groups: [filter_group],
29
+ sorts: [{'propertyName' => 'hs_object_id', 'direction' => 'ASCENDING'}]
30
+ )
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,23 @@
1
+ module Services
2
+ module Hubspot
3
+ module Properties
4
+ class Create
5
+ def initialize(params)
6
+ @params = params
7
+ end
8
+
9
+ def call
10
+ core_api = ::Hubspot::Crm::Properties::CoreApi.new
11
+ params = { auth_names: 'oauth2', body: property_create }
12
+ core_api.create('contact',params)
13
+ end
14
+
15
+ private
16
+
17
+ def property_create
18
+ @property_create ||= ::Hubspot::Crm::Properties::PropertyCreate.new(@params)
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,16 @@
1
+ module Services
2
+ module Hubspot
3
+ module Properties
4
+ class Destroy
5
+ def initialize(name)
6
+ @name = name
7
+ end
8
+
9
+ def call
10
+ core_api = ::Hubspot::Crm::Properties::CoreApi.new
11
+ core_api.archive('contact', @name, auth_names: 'oauth2')
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,3 @@
1
+ class ApplicationRecord < ActiveRecord::Base
2
+ self.abstract_class = true
3
+ end
@@ -0,0 +1,13 @@
1
+ <div class='container'>
2
+ <% if @error.present? %>
3
+ <h3><%= @error.message %></h3>
4
+ <% else %>
5
+ <h3>In order to continue run rake task in console</h3>
6
+
7
+ <div id="rake-task">
8
+ <%= "docker-compose run web rake contacts:search access_token=#{session[:tokens][:access_token]}" %>
9
+ </div>
10
+
11
+ <button class="clipboard-btn" type="button" data-clipboard-target="#rake-task">Copy to clipboard</button>
12
+ <% end %>
13
+ </div>
@@ -0,0 +1,23 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <title>HubSpot Ruby Search sample app</title>
6
+ <%= csrf_meta_tags %>
7
+ <%= csp_meta_tag %>
8
+
9
+ <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Roboto:300,300italic,700,700italic">
10
+ <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.css">
11
+ <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/milligram/1.3.0/milligram.css">
12
+
13
+ <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
14
+ <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
15
+ </head>
16
+
17
+ <body>
18
+ <%= render partial: "shared/header"%>
19
+ <div class="wrapper">
20
+ <%= yield %>
21
+ </div>
22
+ </body>
23
+ </html>
@@ -0,0 +1,15 @@
1
+ <div class="container">
2
+ <pre>
3
+ // app/lib/services/authorization/get_authorization_uri.rb - Generate URL for OAuth
4
+
5
+ ::Hubspot::OAuthHelper.authorize_url(
6
+ client_id: 'client_id',
7
+ redirect_uri: redirect_uri,
8
+ scope: %w[contacts]
9
+ )
10
+ </pre>
11
+ <h3 class="text-center">In order to continue please authorize via OAuth</h3>
12
+ <div class="row authorize-button">
13
+ <a class="button" href="/oauth">Authorize</a>
14
+ </div>
15
+ </div>
@@ -0,0 +1,18 @@
1
+ <nav class="navigation">
2
+ <div class="container">
3
+ <a class="navigation-title" href="/">
4
+ <h3 class="title">HubSpot Ruby Search Sample App</h3>
5
+ </a>
6
+ <ul class="navigation-list float-right">
7
+ <li class="navigation-item">
8
+ <a id="contacts-list" class="navigation-link" href="/contacts">Contacts</a>
9
+ </li>
10
+ <li class="navigation-item">
11
+ <a id="properties-list" class="navigation-link" href="/properties">Properties</a>
12
+ </li>
13
+ <li class="navigation-item">
14
+ <a class="navigation-link" href="/oauth">OAuth2</a>
15
+ </li>
16
+ </ul>
17
+ </div>
18
+ </nav>
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
3
+ load Gem.bin_path('bundler', 'bundle')
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+ begin
3
+ load File.expand_path('../spring', __FILE__)
4
+ rescue LoadError => e
5
+ raise unless e.message.include?('spring')
6
+ end
7
+ APP_PATH = File.expand_path('../config/application', __dir__)
8
+ require_relative '../config/boot'
9
+ require 'rails/commands'
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+ begin
3
+ load File.expand_path('../spring', __FILE__)
4
+ rescue LoadError => e
5
+ raise unless e.message.include?('spring')
6
+ end
7
+ require_relative '../config/boot'
8
+ require 'rake'
9
+ Rake.application.run
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env ruby
2
+ require 'fileutils'
3
+ include FileUtils
4
+
5
+ # path to your application root.
6
+ APP_ROOT = File.expand_path('..', __dir__)
7
+
8
+ def system!(*args)
9
+ system(*args) || abort("\n== Command #{args} failed ==")
10
+ end
11
+
12
+ chdir APP_ROOT do
13
+ # This script is a starting point to setup your application.
14
+ # Add necessary setup steps to this file.
15
+
16
+ puts '== Installing dependencies =='
17
+ system! 'gem install bundler --conservative'
18
+ system('bundle check') || system!('bundle install')
19
+
20
+ # Install JavaScript dependencies if using Yarn
21
+ # system('bin/yarn')
22
+
23
+ # puts "\n== Copying sample files =="
24
+ # unless File.exist?('config/database.yml')
25
+ # cp 'config/database.yml.sample', 'config/database.yml'
26
+ # end
27
+
28
+ puts "\n== Preparing database =="
29
+ system! 'bin/rails db:setup'
30
+
31
+ puts "\n== Removing old logs and tempfiles =="
32
+ system! 'bin/rails log:clear tmp:clear'
33
+
34
+ puts "\n== Restarting application server =="
35
+ system! 'bin/rails restart'
36
+ end