slack_resources 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (316) hide show
  1. checksums.yaml +7 -0
  2. data/.circleci/config.yml +87 -0
  3. data/.circleci/gem_deployment.rb +53 -0
  4. data/.gitignore +13 -0
  5. data/.rubocop.yml +104 -0
  6. data/Gemfile +5 -0
  7. data/Gemfile.lock +93 -0
  8. data/README.md +29 -0
  9. data/Rakefile +6 -0
  10. data/lib/generate_event_api_resources.rb +8 -0
  11. data/lib/slack_resources.rb +11 -0
  12. data/lib/slack_resources/generator/event_api/examples_preparation.rb +71 -0
  13. data/lib/slack_resources/generator/event_api/fetch.rb +111 -0
  14. data/lib/slack_resources/generator/event_api/strong_hash.rb +25 -0
  15. data/lib/slack_resources/generator/event_api/to_schema.rb +200 -0
  16. data/lib/slack_resources/generator/event_api/type_detection.rb +272 -0
  17. data/lib/slack_resources/generator/event_api/write.rb +123 -0
  18. data/lib/slack_resources/raw_data/event_api/_added_examples/emoji_changed.add.json +7 -0
  19. data/lib/slack_resources/raw_data/event_api/_added_examples/emoji_changed.remove.json +6 -0
  20. data/lib/slack_resources/raw_data/event_api/_added_examples/event_callback.json +13 -0
  21. data/lib/slack_resources/raw_data/event_api/examples/app_mention.json +8 -0
  22. data/lib/slack_resources/raw_data/event_api/examples/app_rate_limited.json +7 -0
  23. data/lib/slack_resources/raw_data/event_api/examples/app_uninstalled.json +11 -0
  24. data/lib/slack_resources/raw_data/event_api/examples/channel_archive.json +5 -0
  25. data/lib/slack_resources/raw_data/event_api/examples/channel_created.json +9 -0
  26. data/lib/slack_resources/raw_data/event_api/examples/channel_deleted.json +4 -0
  27. data/lib/slack_resources/raw_data/event_api/examples/channel_history_changed.json +6 -0
  28. data/lib/slack_resources/raw_data/event_api/examples/channel_left.json +4 -0
  29. data/lib/slack_resources/raw_data/event_api/examples/channel_rename.json +8 -0
  30. data/lib/slack_resources/raw_data/event_api/examples/channel_unarchive.json +5 -0
  31. data/lib/slack_resources/raw_data/event_api/examples/dnd_updated.json +11 -0
  32. data/lib/slack_resources/raw_data/event_api/examples/dnd_updated_user.json +9 -0
  33. data/lib/slack_resources/raw_data/event_api/examples/email_domain_changed.json +5 -0
  34. data/lib/slack_resources/raw_data/event_api/examples/emoji_changed.json +8 -0
  35. data/lib/slack_resources/raw_data/event_api/examples/file_change.json +7 -0
  36. data/lib/slack_resources/raw_data/event_api/examples/file_comment_added.json +9 -0
  37. data/lib/slack_resources/raw_data/event_api/examples/file_comment_deleted.json +8 -0
  38. data/lib/slack_resources/raw_data/event_api/examples/file_comment_edited.json +9 -0
  39. data/lib/slack_resources/raw_data/event_api/examples/file_created.json +7 -0
  40. data/lib/slack_resources/raw_data/event_api/examples/file_deleted.json +5 -0
  41. data/lib/slack_resources/raw_data/event_api/examples/file_public.json +7 -0
  42. data/lib/slack_resources/raw_data/event_api/examples/file_shared.json +7 -0
  43. data/lib/slack_resources/raw_data/event_api/examples/file_unshared.json +7 -0
  44. data/lib/slack_resources/raw_data/event_api/examples/grid_migration_finished.json +12 -0
  45. data/lib/slack_resources/raw_data/event_api/examples/grid_migration_started.json +12 -0
  46. data/lib/slack_resources/raw_data/event_api/examples/group_archive.json +4 -0
  47. data/lib/slack_resources/raw_data/event_api/examples/group_close.json +5 -0
  48. data/lib/slack_resources/raw_data/event_api/examples/group_deleted.json +4 -0
  49. data/lib/slack_resources/raw_data/event_api/examples/group_history_changed.json +6 -0
  50. data/lib/slack_resources/raw_data/event_api/examples/group_left.json +4 -0
  51. data/lib/slack_resources/raw_data/event_api/examples/group_open.json +5 -0
  52. data/lib/slack_resources/raw_data/event_api/examples/group_rename.json +8 -0
  53. data/lib/slack_resources/raw_data/event_api/examples/group_unarchive.json +4 -0
  54. data/lib/slack_resources/raw_data/event_api/examples/im_close.json +5 -0
  55. data/lib/slack_resources/raw_data/event_api/examples/im_created.json +6 -0
  56. data/lib/slack_resources/raw_data/event_api/examples/im_history_changed.json +6 -0
  57. data/lib/slack_resources/raw_data/event_api/examples/im_open.json +5 -0
  58. data/lib/slack_resources/raw_data/event_api/examples/link_shared.json +33 -0
  59. data/lib/slack_resources/raw_data/event_api/examples/member_joined_channel.json +8 -0
  60. data/lib/slack_resources/raw_data/event_api/examples/member_left_channel.json +7 -0
  61. data/lib/slack_resources/raw_data/event_api/examples/message.app_home.json +20 -0
  62. data/lib/slack_resources/raw_data/event_api/examples/message.channels.json +20 -0
  63. data/lib/slack_resources/raw_data/event_api/examples/message.groups.json +20 -0
  64. data/lib/slack_resources/raw_data/event_api/examples/message.im.json +20 -0
  65. data/lib/slack_resources/raw_data/event_api/examples/message.json +7 -0
  66. data/lib/slack_resources/raw_data/event_api/examples/message.mpim.json +20 -0
  67. data/lib/slack_resources/raw_data/event_api/examples/pin_added.json +8 -0
  68. data/lib/slack_resources/raw_data/event_api/examples/pin_removed.json +9 -0
  69. data/lib/slack_resources/raw_data/event_api/examples/reaction_added.json +12 -0
  70. data/lib/slack_resources/raw_data/event_api/examples/reaction_removed.json +12 -0
  71. data/lib/slack_resources/raw_data/event_api/examples/resources_added.json +31 -0
  72. data/lib/slack_resources/raw_data/event_api/examples/resources_removed.json +31 -0
  73. data/lib/slack_resources/raw_data/event_api/examples/scope_denied.json +20 -0
  74. data/lib/slack_resources/raw_data/event_api/examples/scope_granted.json +20 -0
  75. data/lib/slack_resources/raw_data/event_api/examples/star_added.json +7 -0
  76. data/lib/slack_resources/raw_data/event_api/examples/star_removed.json +7 -0
  77. data/lib/slack_resources/raw_data/event_api/examples/subteam_created.json +28 -0
  78. data/lib/slack_resources/raw_data/event_api/examples/subteam_members_changed.json +17 -0
  79. data/lib/slack_resources/raw_data/event_api/examples/subteam_self_added.json +4 -0
  80. data/lib/slack_resources/raw_data/event_api/examples/subteam_self_removed.json +4 -0
  81. data/lib/slack_resources/raw_data/event_api/examples/subteam_updated.json +34 -0
  82. data/lib/slack_resources/raw_data/event_api/examples/team_domain_change.json +5 -0
  83. data/lib/slack_resources/raw_data/event_api/examples/team_join.json +5 -0
  84. data/lib/slack_resources/raw_data/event_api/examples/team_rename.json +4 -0
  85. data/lib/slack_resources/raw_data/event_api/examples/tokens_revoked.json +19 -0
  86. data/lib/slack_resources/raw_data/event_api/examples/url_verification.json +5 -0
  87. data/lib/slack_resources/raw_data/event_api/examples/user_change.json +5 -0
  88. data/lib/slack_resources/raw_data/event_api/examples/user_resource_denied.json +20 -0
  89. data/lib/slack_resources/raw_data/event_api/examples/user_resource_granted.json +20 -0
  90. data/lib/slack_resources/raw_data/event_api/examples/user_resource_removed.json +16 -0
  91. data/lib/slack_resources/raw_data/event_api/meta.json +834 -0
  92. data/lib/slack_resources/raw_data/event_api/preset_schemas.json +33 -0
  93. data/lib/slack_resources/resources/event_api.rb +38 -0
  94. data/lib/slack_resources/resources/event_api/details/app_mention.json +85 -0
  95. data/lib/slack_resources/resources/event_api/details/app_rate_limited.json +80 -0
  96. data/lib/slack_resources/resources/event_api/details/app_uninstalled.json +36 -0
  97. data/lib/slack_resources/resources/event_api/details/channel_archive.json +59 -0
  98. data/lib/slack_resources/resources/event_api/details/channel_created.json +82 -0
  99. data/lib/slack_resources/resources/event_api/details/channel_deleted.json +48 -0
  100. data/lib/slack_resources/resources/event_api/details/channel_history_changed.json +66 -0
  101. data/lib/slack_resources/resources/event_api/details/channel_left.json +48 -0
  102. data/lib/slack_resources/resources/event_api/details/channel_rename.json +77 -0
  103. data/lib/slack_resources/resources/event_api/details/channel_unarchive.json +59 -0
  104. data/lib/slack_resources/resources/event_api/details/dnd_updated.json +86 -0
  105. data/lib/slack_resources/resources/event_api/details/dnd_updated_user.json +82 -0
  106. data/lib/slack_resources/resources/event_api/details/email_domain_changed.json +56 -0
  107. data/lib/slack_resources/resources/event_api/details/emoji_changed.add.json +78 -0
  108. data/lib/slack_resources/resources/event_api/details/emoji_changed.json +103 -0
  109. data/lib/slack_resources/resources/event_api/details/emoji_changed.remove.json +77 -0
  110. data/lib/slack_resources/resources/event_api/details/event_callback.json +126 -0
  111. data/lib/slack_resources/resources/event_api/details/file_change.json +69 -0
  112. data/lib/slack_resources/resources/event_api/details/file_comment_added.json +85 -0
  113. data/lib/slack_resources/resources/event_api/details/file_comment_deleted.json +80 -0
  114. data/lib/slack_resources/resources/event_api/details/file_comment_edited.json +85 -0
  115. data/lib/slack_resources/resources/event_api/details/file_created.json +69 -0
  116. data/lib/slack_resources/resources/event_api/details/file_deleted.json +59 -0
  117. data/lib/slack_resources/resources/event_api/details/file_public.json +69 -0
  118. data/lib/slack_resources/resources/event_api/details/file_shared.json +69 -0
  119. data/lib/slack_resources/resources/event_api/details/file_unshared.json +69 -0
  120. data/lib/slack_resources/resources/event_api/details/grid_migration_finished.json +47 -0
  121. data/lib/slack_resources/resources/event_api/details/grid_migration_started.json +47 -0
  122. data/lib/slack_resources/resources/event_api/details/group_archive.json +48 -0
  123. data/lib/slack_resources/resources/event_api/details/group_close.json +59 -0
  124. data/lib/slack_resources/resources/event_api/details/group_deleted.json +48 -0
  125. data/lib/slack_resources/resources/event_api/details/group_history_changed.json +64 -0
  126. data/lib/slack_resources/resources/event_api/details/group_left.json +48 -0
  127. data/lib/slack_resources/resources/event_api/details/group_open.json +59 -0
  128. data/lib/slack_resources/resources/event_api/details/group_rename.json +77 -0
  129. data/lib/slack_resources/resources/event_api/details/group_unarchive.json +48 -0
  130. data/lib/slack_resources/resources/event_api/details/im_close.json +59 -0
  131. data/lib/slack_resources/resources/event_api/details/im_created.json +73 -0
  132. data/lib/slack_resources/resources/event_api/details/im_history_changed.json +64 -0
  133. data/lib/slack_resources/resources/event_api/details/im_open.json +59 -0
  134. data/lib/slack_resources/resources/event_api/details/link_shared.json +129 -0
  135. data/lib/slack_resources/resources/event_api/details/member_joined_channel.json +87 -0
  136. data/lib/slack_resources/resources/event_api/details/member_left_channel.json +79 -0
  137. data/lib/slack_resources/resources/event_api/details/message.app_home.json +93 -0
  138. data/lib/slack_resources/resources/event_api/details/message.channels.json +93 -0
  139. data/lib/slack_resources/resources/event_api/details/message.groups.json +93 -0
  140. data/lib/slack_resources/resources/event_api/details/message.im.json +93 -0
  141. data/lib/slack_resources/resources/event_api/details/message.json +129 -0
  142. data/lib/slack_resources/resources/event_api/details/message.mpim.json +93 -0
  143. data/lib/slack_resources/resources/event_api/details/pin_added.json +86 -0
  144. data/lib/slack_resources/resources/event_api/details/pin_removed.json +94 -0
  145. data/lib/slack_resources/resources/event_api/details/reaction_added.json +115 -0
  146. data/lib/slack_resources/resources/event_api/details/reaction_removed.json +115 -0
  147. data/lib/slack_resources/resources/event_api/details/resources_added.json +152 -0
  148. data/lib/slack_resources/resources/event_api/details/resources_removed.json +152 -0
  149. data/lib/slack_resources/resources/event_api/details/scope_denied.json +91 -0
  150. data/lib/slack_resources/resources/event_api/details/scope_granted.json +91 -0
  151. data/lib/slack_resources/resources/event_api/details/star_added.json +75 -0
  152. data/lib/slack_resources/resources/event_api/details/star_removed.json +75 -0
  153. data/lib/slack_resources/resources/event_api/details/subteam_created.json +198 -0
  154. data/lib/slack_resources/resources/event_api/details/subteam_members_changed.json +140 -0
  155. data/lib/slack_resources/resources/event_api/details/subteam_self_added.json +48 -0
  156. data/lib/slack_resources/resources/event_api/details/subteam_self_removed.json +48 -0
  157. data/lib/slack_resources/resources/event_api/details/subteam_updated.json +210 -0
  158. data/lib/slack_resources/resources/event_api/details/team_domain_change.json +53 -0
  159. data/lib/slack_resources/resources/event_api/details/team_join.json +53 -0
  160. data/lib/slack_resources/resources/event_api/details/team_rename.json +48 -0
  161. data/lib/slack_resources/resources/event_api/details/tokens_revoked.json +76 -0
  162. data/lib/slack_resources/resources/event_api/details/url_verification.json +52 -0
  163. data/lib/slack_resources/resources/event_api/details/user_change.json +53 -0
  164. data/lib/slack_resources/resources/event_api/details/user_resource_denied.json +100 -0
  165. data/lib/slack_resources/resources/event_api/details/user_resource_granted.json +100 -0
  166. data/lib/slack_resources/resources/event_api/details/user_resource_removed.json +58 -0
  167. data/lib/slack_resources/resources/event_api/examples/app_mention.json +8 -0
  168. data/lib/slack_resources/resources/event_api/examples/app_rate_limited.json +7 -0
  169. data/lib/slack_resources/resources/event_api/examples/app_uninstalled.json +3 -0
  170. data/lib/slack_resources/resources/event_api/examples/channel_archive.json +5 -0
  171. data/lib/slack_resources/resources/event_api/examples/channel_created.json +9 -0
  172. data/lib/slack_resources/resources/event_api/examples/channel_deleted.json +4 -0
  173. data/lib/slack_resources/resources/event_api/examples/channel_history_changed.json +6 -0
  174. data/lib/slack_resources/resources/event_api/examples/channel_left.json +4 -0
  175. data/lib/slack_resources/resources/event_api/examples/channel_rename.json +8 -0
  176. data/lib/slack_resources/resources/event_api/examples/channel_unarchive.json +5 -0
  177. data/lib/slack_resources/resources/event_api/examples/dnd_updated.json +11 -0
  178. data/lib/slack_resources/resources/event_api/examples/dnd_updated_user.json +9 -0
  179. data/lib/slack_resources/resources/event_api/examples/email_domain_changed.json +5 -0
  180. data/lib/slack_resources/resources/event_api/examples/emoji_changed.add.json +7 -0
  181. data/lib/slack_resources/resources/event_api/examples/emoji_changed.json +7 -0
  182. data/lib/slack_resources/resources/event_api/examples/emoji_changed.remove.json +8 -0
  183. data/lib/slack_resources/resources/event_api/examples/event_callback.json +14 -0
  184. data/lib/slack_resources/resources/event_api/examples/file_change.json +7 -0
  185. data/lib/slack_resources/resources/event_api/examples/file_comment_added.json +9 -0
  186. data/lib/slack_resources/resources/event_api/examples/file_comment_deleted.json +8 -0
  187. data/lib/slack_resources/resources/event_api/examples/file_comment_edited.json +9 -0
  188. data/lib/slack_resources/resources/event_api/examples/file_created.json +7 -0
  189. data/lib/slack_resources/resources/event_api/examples/file_deleted.json +5 -0
  190. data/lib/slack_resources/resources/event_api/examples/file_public.json +7 -0
  191. data/lib/slack_resources/resources/event_api/examples/file_shared.json +7 -0
  192. data/lib/slack_resources/resources/event_api/examples/file_unshared.json +7 -0
  193. data/lib/slack_resources/resources/event_api/examples/grid_migration_finished.json +4 -0
  194. data/lib/slack_resources/resources/event_api/examples/grid_migration_started.json +4 -0
  195. data/lib/slack_resources/resources/event_api/examples/group_archive.json +4 -0
  196. data/lib/slack_resources/resources/event_api/examples/group_close.json +5 -0
  197. data/lib/slack_resources/resources/event_api/examples/group_deleted.json +4 -0
  198. data/lib/slack_resources/resources/event_api/examples/group_history_changed.json +6 -0
  199. data/lib/slack_resources/resources/event_api/examples/group_left.json +4 -0
  200. data/lib/slack_resources/resources/event_api/examples/group_open.json +5 -0
  201. data/lib/slack_resources/resources/event_api/examples/group_rename.json +8 -0
  202. data/lib/slack_resources/resources/event_api/examples/group_unarchive.json +4 -0
  203. data/lib/slack_resources/resources/event_api/examples/im_close.json +5 -0
  204. data/lib/slack_resources/resources/event_api/examples/im_created.json +6 -0
  205. data/lib/slack_resources/resources/event_api/examples/im_history_changed.json +6 -0
  206. data/lib/slack_resources/resources/event_api/examples/im_open.json +5 -0
  207. data/lib/slack_resources/resources/event_api/examples/link_shared.json +21 -0
  208. data/lib/slack_resources/resources/event_api/examples/member_joined_channel.json +8 -0
  209. data/lib/slack_resources/resources/event_api/examples/member_left_channel.json +7 -0
  210. data/lib/slack_resources/resources/event_api/examples/message.app_home.json +9 -0
  211. data/lib/slack_resources/resources/event_api/examples/message.channels.json +9 -0
  212. data/lib/slack_resources/resources/event_api/examples/message.groups.json +9 -0
  213. data/lib/slack_resources/resources/event_api/examples/message.im.json +9 -0
  214. data/lib/slack_resources/resources/event_api/examples/message.json +9 -0
  215. data/lib/slack_resources/resources/event_api/examples/message.mpim.json +9 -0
  216. data/lib/slack_resources/resources/event_api/examples/pin_added.json +8 -0
  217. data/lib/slack_resources/resources/event_api/examples/pin_removed.json +9 -0
  218. data/lib/slack_resources/resources/event_api/examples/reaction_added.json +12 -0
  219. data/lib/slack_resources/resources/event_api/examples/reaction_removed.json +12 -0
  220. data/lib/slack_resources/resources/event_api/examples/resources_added.json +20 -0
  221. data/lib/slack_resources/resources/event_api/examples/resources_removed.json +20 -0
  222. data/lib/slack_resources/resources/event_api/examples/scope_denied.json +9 -0
  223. data/lib/slack_resources/resources/event_api/examples/scope_granted.json +9 -0
  224. data/lib/slack_resources/resources/event_api/examples/star_added.json +7 -0
  225. data/lib/slack_resources/resources/event_api/examples/star_removed.json +7 -0
  226. data/lib/slack_resources/resources/event_api/examples/subteam_created.json +28 -0
  227. data/lib/slack_resources/resources/event_api/examples/subteam_members_changed.json +17 -0
  228. data/lib/slack_resources/resources/event_api/examples/subteam_self_added.json +4 -0
  229. data/lib/slack_resources/resources/event_api/examples/subteam_self_removed.json +4 -0
  230. data/lib/slack_resources/resources/event_api/examples/subteam_updated.json +34 -0
  231. data/lib/slack_resources/resources/event_api/examples/team_domain_change.json +5 -0
  232. data/lib/slack_resources/resources/event_api/examples/team_join.json +5 -0
  233. data/lib/slack_resources/resources/event_api/examples/team_rename.json +4 -0
  234. data/lib/slack_resources/resources/event_api/examples/tokens_revoked.json +11 -0
  235. data/lib/slack_resources/resources/event_api/examples/url_verification.json +5 -0
  236. data/lib/slack_resources/resources/event_api/examples/user_change.json +5 -0
  237. data/lib/slack_resources/resources/event_api/examples/user_resource_denied.json +9 -0
  238. data/lib/slack_resources/resources/event_api/examples/user_resource_granted.json +9 -0
  239. data/lib/slack_resources/resources/event_api/examples/user_resource_removed.json +5 -0
  240. data/lib/slack_resources/resources/event_api/schema.json +2261 -0
  241. data/lib/slack_resources/resources/event_api/schemas/app_mention.json +46 -0
  242. data/lib/slack_resources/resources/event_api/schemas/app_rate_limited.json +45 -0
  243. data/lib/slack_resources/resources/event_api/schemas/app_uninstalled.json +17 -0
  244. data/lib/slack_resources/resources/event_api/schemas/channel_archive.json +31 -0
  245. data/lib/slack_resources/resources/event_api/schemas/channel_created.json +53 -0
  246. data/lib/slack_resources/resources/event_api/schemas/channel_deleted.json +24 -0
  247. data/lib/slack_resources/resources/event_api/schemas/channel_history_changed.json +32 -0
  248. data/lib/slack_resources/resources/event_api/schemas/channel_left.json +24 -0
  249. data/lib/slack_resources/resources/event_api/schemas/channel_rename.json +49 -0
  250. data/lib/slack_resources/resources/event_api/schemas/channel_unarchive.json +31 -0
  251. data/lib/slack_resources/resources/event_api/schemas/dnd_updated.json +52 -0
  252. data/lib/slack_resources/resources/event_api/schemas/dnd_updated_user.json +50 -0
  253. data/lib/slack_resources/resources/event_api/schemas/email_domain_changed.json +28 -0
  254. data/lib/slack_resources/resources/event_api/schemas/emoji_changed.add.json +42 -0
  255. data/lib/slack_resources/resources/event_api/schemas/emoji_changed.json +61 -0
  256. data/lib/slack_resources/resources/event_api/schemas/emoji_changed.remove.json +40 -0
  257. data/lib/slack_resources/resources/event_api/schemas/event_callback.json +76 -0
  258. data/lib/slack_resources/resources/event_api/schemas/file_change.json +39 -0
  259. data/lib/slack_resources/resources/event_api/schemas/file_comment_added.json +50 -0
  260. data/lib/slack_resources/resources/event_api/schemas/file_comment_deleted.json +46 -0
  261. data/lib/slack_resources/resources/event_api/schemas/file_comment_edited.json +50 -0
  262. data/lib/slack_resources/resources/event_api/schemas/file_created.json +39 -0
  263. data/lib/slack_resources/resources/event_api/schemas/file_deleted.json +31 -0
  264. data/lib/slack_resources/resources/event_api/schemas/file_public.json +39 -0
  265. data/lib/slack_resources/resources/event_api/schemas/file_shared.json +39 -0
  266. data/lib/slack_resources/resources/event_api/schemas/file_unshared.json +39 -0
  267. data/lib/slack_resources/resources/event_api/schemas/grid_migration_finished.json +24 -0
  268. data/lib/slack_resources/resources/event_api/schemas/grid_migration_started.json +24 -0
  269. data/lib/slack_resources/resources/event_api/schemas/group_archive.json +24 -0
  270. data/lib/slack_resources/resources/event_api/schemas/group_close.json +31 -0
  271. data/lib/slack_resources/resources/event_api/schemas/group_deleted.json +24 -0
  272. data/lib/slack_resources/resources/event_api/schemas/group_history_changed.json +32 -0
  273. data/lib/slack_resources/resources/event_api/schemas/group_left.json +24 -0
  274. data/lib/slack_resources/resources/event_api/schemas/group_open.json +31 -0
  275. data/lib/slack_resources/resources/event_api/schemas/group_rename.json +49 -0
  276. data/lib/slack_resources/resources/event_api/schemas/group_unarchive.json +24 -0
  277. data/lib/slack_resources/resources/event_api/schemas/im_close.json +31 -0
  278. data/lib/slack_resources/resources/event_api/schemas/im_created.json +44 -0
  279. data/lib/slack_resources/resources/event_api/schemas/im_history_changed.json +32 -0
  280. data/lib/slack_resources/resources/event_api/schemas/im_open.json +31 -0
  281. data/lib/slack_resources/resources/event_api/schemas/link_shared.json +74 -0
  282. data/lib/slack_resources/resources/event_api/schemas/member_joined_channel.json +46 -0
  283. data/lib/slack_resources/resources/event_api/schemas/member_left_channel.json +42 -0
  284. data/lib/slack_resources/resources/event_api/schemas/message.app_home.json +50 -0
  285. data/lib/slack_resources/resources/event_api/schemas/message.channels.json +50 -0
  286. data/lib/slack_resources/resources/event_api/schemas/message.groups.json +50 -0
  287. data/lib/slack_resources/resources/event_api/schemas/message.im.json +50 -0
  288. data/lib/slack_resources/resources/event_api/schemas/message.json +82 -0
  289. data/lib/slack_resources/resources/event_api/schemas/message.mpim.json +50 -0
  290. data/lib/slack_resources/resources/event_api/schemas/pin_added.json +49 -0
  291. data/lib/slack_resources/resources/event_api/schemas/pin_removed.json +53 -0
  292. data/lib/slack_resources/resources/event_api/schemas/reaction_added.json +71 -0
  293. data/lib/slack_resources/resources/event_api/schemas/reaction_removed.json +71 -0
  294. data/lib/slack_resources/resources/event_api/schemas/resources_added.json +110 -0
  295. data/lib/slack_resources/resources/event_api/schemas/resources_removed.json +110 -0
  296. data/lib/slack_resources/resources/event_api/schemas/scope_denied.json +57 -0
  297. data/lib/slack_resources/resources/event_api/schemas/scope_granted.json +57 -0
  298. data/lib/slack_resources/resources/event_api/schemas/star_added.json +42 -0
  299. data/lib/slack_resources/resources/event_api/schemas/star_removed.json +42 -0
  300. data/lib/slack_resources/resources/event_api/schemas/subteam_created.json +150 -0
  301. data/lib/slack_resources/resources/event_api/schemas/subteam_members_changed.json +76 -0
  302. data/lib/slack_resources/resources/event_api/schemas/subteam_self_added.json +24 -0
  303. data/lib/slack_resources/resources/event_api/schemas/subteam_self_removed.json +24 -0
  304. data/lib/slack_resources/resources/event_api/schemas/subteam_updated.json +156 -0
  305. data/lib/slack_resources/resources/event_api/schemas/team_domain_change.json +25 -0
  306. data/lib/slack_resources/resources/event_api/schemas/team_join.json +28 -0
  307. data/lib/slack_resources/resources/event_api/schemas/team_rename.json +24 -0
  308. data/lib/slack_resources/resources/event_api/schemas/tokens_revoked.json +46 -0
  309. data/lib/slack_resources/resources/event_api/schemas/url_verification.json +25 -0
  310. data/lib/slack_resources/resources/event_api/schemas/user_change.json +28 -0
  311. data/lib/slack_resources/resources/event_api/schemas/user_resource_denied.json +63 -0
  312. data/lib/slack_resources/resources/event_api/schemas/user_resource_granted.json +63 -0
  313. data/lib/slack_resources/resources/event_api/schemas/user_resource_removed.json +31 -0
  314. data/lib/slack_resources/resources/event_api/summary.json +5876 -0
  315. data/slack_resources.gemspec +33 -0
  316. metadata +470 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: c9dba64ad62d735b1fdd4d78bcc27d49dc0b542b6cc8396f9c242b0ed75957c4
4
+ data.tar.gz: 5d44a72526ca76e82b74bae7cbb43c0415ac3a3dcb507c1bae68263eb379f85a
5
+ SHA512:
6
+ metadata.gz: 3d89dc5724b52540c15d02b33f5c353dff4a8f1bb19924f03ceec801b68af309b47fbb5e62261b55af4b2f3861f3748c3763d0388f4c9be40be4603b3549362d
7
+ data.tar.gz: c42e4c9d96649cad665cf4c5e756379fbaeba9da8ab45555533cdd184d8d10fd70405d34a28ef8f9cc1c4bdfd858e5d661807205b230960adffe56fd2adc4f60
@@ -0,0 +1,87 @@
1
+ version: 2
2
+ jobs:
3
+ test:
4
+ parallelism: 1
5
+ docker:
6
+ - image: circleci/ruby:2.5.1
7
+ steps:
8
+ - checkout
9
+
10
+ - restore_cache:
11
+ keys:
12
+ - rails-demo-bundle-v2-{{ checksum "Gemfile.lock" }}
13
+ - rails-demo-bundle-v2-
14
+
15
+ - run:
16
+ name: Bundle Install
17
+ command: bundle check || bundle install --path vendor/bundle
18
+
19
+ - save_cache:
20
+ key: rails-demo-bundle-v2-{{ checksum "Gemfile.lock" }}
21
+ paths:
22
+ - vendor/bundle
23
+
24
+ - run:
25
+ name: Test
26
+ command: bundle exec rspec -cfd
27
+ - run:
28
+ name: Rubocop
29
+ command: bundle exec rubocop
30
+
31
+ deploy_gem:
32
+ parallelism: 1
33
+ docker:
34
+ - image: circleci/ruby:2.5.1
35
+ steps:
36
+ - checkout
37
+ - run:
38
+ name: Deployment
39
+ command: ruby .circleci/gem_deployment.rb $RUBYGEMS_API_KEY
40
+
41
+ deploy_gem_minor:
42
+ parallelism: 1
43
+ docker:
44
+ - image: circleci/ruby:2.5.1
45
+ steps:
46
+ - checkout
47
+ - run:
48
+ name: Deployment
49
+ command: ruby .circleci/gem_deployment.rb $RUBYGEMS_API_KEY minor
50
+
51
+ deploy_gem_major:
52
+ parallelism: 1
53
+ docker:
54
+ - image: circleci/ruby:2.5.1
55
+ steps:
56
+ - checkout
57
+ - run:
58
+ name: Deployment
59
+ command: ruby .circleci/gem_deployment.rb $RUBYGEMS_API_KEY major
60
+
61
+
62
+ workflows:
63
+ version: 2
64
+ build_and_test:
65
+ jobs:
66
+ - test
67
+ - deploy_gem:
68
+ filters:
69
+ branches:
70
+ only:
71
+ - deployment/gem
72
+ requires:
73
+ - test
74
+ - deploy_gem_minor:
75
+ filters:
76
+ branches:
77
+ only:
78
+ - deployment/gem_minor
79
+ requires:
80
+ - test
81
+ - deploy_gem_major:
82
+ filters:
83
+ branches:
84
+ only:
85
+ - deployment/gem_major
86
+ requires:
87
+ - test
@@ -0,0 +1,53 @@
1
+ class GemDeployment
2
+ CREDENTIAL_DIR_PATH = '~/.gem/credentials'
3
+ CREDENTIAL_FILE_PATH = '~/.gem/credentials'
4
+ VERSION_FILE_PATH = './lib/slack_resources/version.rb'
5
+
6
+ def initialize(api_key = '', version = 'tiny')
7
+ @api_key = api_key
8
+ @version = version
9
+ end
10
+
11
+ def execute!
12
+ major, minor, tiny = fetch_version
13
+
14
+ major += 1 if major?
15
+ minor += 1 if minor?
16
+ tiny += 1 if tiny?
17
+
18
+ next_version = [major, minor, tiny].join('.')
19
+
20
+ `echo "---\n:rubygems_api_key: #{@api_key}\n" > ~/.gem/credentials && chmod 600 ~/.gem/credentials`
21
+
22
+ File.write(VERSION_FILE_PATH, <<~VER)
23
+ module SlackResources
24
+ VERSION = '#{next_version}'.freeze
25
+ end
26
+ VER
27
+
28
+ result = `gem build slack_resources.gemspec`
29
+ puts result
30
+ gem_file = result.match(/File: *(.+)\n/m)[1]
31
+ puts `gem push #{gem_file}`
32
+ end
33
+
34
+ private
35
+
36
+ def fetch_version
37
+ `gem search slack_resources`.match(/\(([\d.]+)\)/)[1].split('.').map(&:to_i)
38
+ end
39
+
40
+ def major?
41
+ @version == 'major'
42
+ end
43
+
44
+ def minor?
45
+ @version == 'minor'
46
+ end
47
+
48
+ def tiny?
49
+ @version == 'tiny'
50
+ end
51
+ end
52
+
53
+ GemDeployment.new(*ARGV).execute! if __FILE__ == $0
data/.gitignore ADDED
@@ -0,0 +1,13 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+
10
+ # rspec failure tracking
11
+ .rspec_status
12
+ .env
13
+ .circleci/config.*.yml
data/.rubocop.yml ADDED
@@ -0,0 +1,104 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.5
3
+ Exclude:
4
+ - tmp
5
+ - lib/slack_resources/generator/event_api/fetch.rb
6
+ - vendor/**/*
7
+
8
+ Rails:
9
+ Enabled: true
10
+
11
+ Documentation:
12
+ Enabled: false
13
+
14
+ Metrics/AbcSize:
15
+ Max: 40
16
+ Exclude:
17
+ - db/migrate/*.rb
18
+ Metrics/CyclomaticComplexity:
19
+ Max: 10
20
+
21
+ Metrics/LineLength:
22
+ Max: 250
23
+ Exclude:
24
+ - db/migrate/*.rb
25
+
26
+ Metrics/BlockLength:
27
+ Max: 30
28
+ Exclude:
29
+ - 'spec/**/*'
30
+
31
+ Metrics/MethodLength:
32
+ Max: 200
33
+ Exclude:
34
+ - db/migrate/*.rb
35
+
36
+ Metrics/ModuleLength:
37
+ Max: 150
38
+
39
+ Metrics/ClassLength:
40
+ Max: 300
41
+ Exclude:
42
+ - db/migrate/*.rb
43
+
44
+ Style/AsciiComments:
45
+ Enabled: false
46
+
47
+ Style/FrozenStringLiteralComment:
48
+ Enabled: false
49
+
50
+ Style/FormatString:
51
+ EnforcedStyle: percent
52
+
53
+ Style/BlockDelimiters:
54
+ EnforcedStyle: braces_for_chaining
55
+
56
+ Style/BlockComments:
57
+ Enabled: false
58
+
59
+ Style/MethodCalledOnDoEndBlock:
60
+ Enabled: true
61
+
62
+ Style/OptionHash:
63
+ Enabled: true
64
+
65
+ Style/SymbolArray:
66
+ Enabled: true
67
+
68
+ Style/EmptyCaseCondition:
69
+ Enabled: false
70
+
71
+ Style/BracesAroundHashParameters:
72
+ Enabled: false
73
+
74
+ Rails/DynamicFindBy:
75
+ Whitelist:
76
+ - find_by_param
77
+ - find_by_param!
78
+
79
+ Rails/HasAndBelongsToMany:
80
+ Enabled: false
81
+
82
+ Rails/SkipsModelValidations:
83
+ Enabled: false
84
+
85
+ Style/TrailingCommaInArrayLiteral:
86
+ EnforcedStyleForMultiline: comma
87
+
88
+ Style/TrailingCommaInHashLiteral:
89
+ EnforcedStyleForMultiline: comma
90
+
91
+ Semicolon:
92
+ Exclude:
93
+ - 'spec/**/*'
94
+ Naming/UncommunicativeMethodParamName:
95
+ MinNameLength: 1
96
+
97
+ Layout/IndentArray:
98
+ EnforcedStyle: consistent
99
+
100
+ Metrics/ParameterLists:
101
+ Max: 20
102
+
103
+ Style/RescueModifier:
104
+ Enabled: false
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
+
5
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,93 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ slack_resources (0.0.0)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ activesupport (5.2.2)
10
+ concurrent-ruby (~> 1.0, >= 1.0.2)
11
+ i18n (>= 0.7, < 2)
12
+ minitest (~> 5.1)
13
+ tzinfo (~> 1.1)
14
+ ast (2.4.0)
15
+ concurrent-ruby (1.1.4)
16
+ diff-lcs (1.3)
17
+ domain_name (0.5.20180417)
18
+ unf (>= 0.0.5, < 1.0.0)
19
+ dotenv (2.5.0)
20
+ http-cookie (1.0.3)
21
+ domain_name (~> 0.5)
22
+ i18n (1.3.0)
23
+ concurrent-ruby (~> 1.0)
24
+ jaro_winkler (1.5.1)
25
+ mime-types (3.2.2)
26
+ mime-types-data (~> 3.2015)
27
+ mime-types-data (3.2018.0812)
28
+ mini_portile2 (2.4.0)
29
+ minitest (5.11.3)
30
+ netrc (0.11.0)
31
+ nokogiri (1.9.1)
32
+ mini_portile2 (~> 2.4.0)
33
+ onkcop (0.53.0.2)
34
+ rubocop (>= 0.53.0)
35
+ rubocop-rspec (>= 1.24.0)
36
+ parallel (1.12.1)
37
+ parser (2.5.3.0)
38
+ ast (~> 2.4.0)
39
+ powerpack (0.1.2)
40
+ rainbow (3.0.0)
41
+ rake (10.5.0)
42
+ rest-client (2.0.2)
43
+ http-cookie (>= 1.0.2, < 2.0)
44
+ mime-types (>= 1.16, < 4.0)
45
+ netrc (~> 0.8)
46
+ rspec (3.8.0)
47
+ rspec-core (~> 3.8.0)
48
+ rspec-expectations (~> 3.8.0)
49
+ rspec-mocks (~> 3.8.0)
50
+ rspec-core (3.8.0)
51
+ rspec-support (~> 3.8.0)
52
+ rspec-expectations (3.8.2)
53
+ diff-lcs (>= 1.2.0, < 2.0)
54
+ rspec-support (~> 3.8.0)
55
+ rspec-mocks (3.8.0)
56
+ diff-lcs (>= 1.2.0, < 2.0)
57
+ rspec-support (~> 3.8.0)
58
+ rspec-support (3.8.0)
59
+ rubocop (0.61.1)
60
+ jaro_winkler (~> 1.5.1)
61
+ parallel (~> 1.10)
62
+ parser (>= 2.5, != 2.5.1.1)
63
+ powerpack (~> 0.1)
64
+ rainbow (>= 2.2.2, < 4.0)
65
+ ruby-progressbar (~> 1.7)
66
+ unicode-display_width (~> 1.4.0)
67
+ rubocop-rspec (1.30.1)
68
+ rubocop (>= 0.60.0)
69
+ ruby-progressbar (1.10.0)
70
+ thread_safe (0.3.6)
71
+ tzinfo (1.2.5)
72
+ thread_safe (~> 0.1)
73
+ unf (0.1.4)
74
+ unf_ext
75
+ unf_ext (0.0.7.5)
76
+ unicode-display_width (1.4.1)
77
+
78
+ PLATFORMS
79
+ ruby
80
+
81
+ DEPENDENCIES
82
+ activesupport (~> 5.2)
83
+ bundler (~> 1.16)
84
+ dotenv (~> 2.5)
85
+ nokogiri (~> 1.8)
86
+ onkcop (~> 0.53)
87
+ rake (~> 10.0)
88
+ rest-client (~> 2.0)
89
+ rspec (~> 3.0)
90
+ slack_resources!
91
+
92
+ BUNDLED WITH
93
+ 1.16.1
data/README.md ADDED
@@ -0,0 +1,29 @@
1
+ # Slack resources
2
+
3
+ We create JSON schemas from Slack document and api examples.
4
+
5
+ # Event api
6
+
7
+ Most event api examples are not wrapped meta data. But some examples are already wrapped. (e.x. `token_revoked` )
8
+
9
+ Our JSON schema did not include wrapping meta data.
10
+
11
+ ```json
12
+ {
13
+ "token": "XXYYZZ",
14
+ "team_id": "TXXXXXXXX",
15
+ "api_app_id": "AXXXXXXXXX",
16
+ "event": {}, // Examples are inserted here.
17
+ "type": "event_callback",
18
+ "authed_users": [
19
+ "UXXXXXXX1",
20
+ "UXXXXXXX2"
21
+ ],
22
+ "event_id": "Ev08MFMKH6",
23
+ "event_time": 1234567890
24
+ }
25
+ ```
26
+
27
+ ## message.foo
28
+
29
+ `message` events have `channel_type` . They are mapped `message.${channel_type}.json` .
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task default: :spec
@@ -0,0 +1,8 @@
1
+ require 'bundler/setup'
2
+ require 'slack_resources'
3
+
4
+ FileUtils.rm_r('./lib/slack_resources/resources/event_api')
5
+ SlackResources::Generator::Writer.new(
6
+ output_dir: './lib/slack_resources/resources/event_api',
7
+ data_dir: './lib/slack_resources/raw_data/event_api'
8
+ ).execute!
@@ -0,0 +1,11 @@
1
+ module SlackResources
2
+ require 'slack_resources/version' if File.exist?('./lib/slack_resources/version')
3
+
4
+ require 'slack_resources/generator/event_api/strong_hash'
5
+ require 'slack_resources/generator/event_api/examples_preparation'
6
+ require 'slack_resources/generator/event_api/to_schema'
7
+ require 'slack_resources/generator/event_api/type_detection'
8
+ require 'slack_resources/generator/event_api/write'
9
+
10
+ require 'slack_resources/resources/event_api'
11
+ end
@@ -0,0 +1,71 @@
1
+ module SlackResources
2
+ module Generator
3
+ class ExamplePreparation
4
+ using StrongHash
5
+
6
+ def initialize(examples_dir:, added_examples_dir:)
7
+ @added_examples_dir = added_examples_dir
8
+ @examples_dir = examples_dir
9
+ end
10
+
11
+ def execute! # rubocop:disable Metrics/AbcSize
12
+ single_events = Set.new(raw_examples.map(&:first))
13
+
14
+ defined = Set.new
15
+ event_typed_examples = {}
16
+ alt_typed_examples = {}
17
+
18
+ raw_examples.each do |alt_event_type, event_type, example|
19
+ example['_raw_example'] = JSON.parse(example.to_json)
20
+ event_typed_examples.protect_merge!(event_type => example)
21
+ alt_typed_examples[alt_event_type] = JSON.parse(example.to_json)
22
+
23
+ next if defined.add?(event_type)
24
+
25
+ single_events.delete(event_type)
26
+ defined_example = event_typed_examples[event_type]
27
+
28
+ Set.new(defined_example.keys + example.keys).each do |k|
29
+ next if k == '_raw_example'
30
+
31
+ defined_value = defined_example[k]
32
+ additional_value = example[k]
33
+
34
+ next if defined_value == additional_value
35
+
36
+ if defined_value.is_a?(Hash) && defined_value[TypeDetection::SPECIAL_TYPE] == TypeDetection::MULTIPLE_EXAMPLES
37
+ (defined_value['items'] << additional_value).sort! { |a, b| a.to_s <=> b.to_s }
38
+ else
39
+ defined_example.merge!(
40
+ k => {
41
+ TypeDetection::SPECIAL_TYPE => TypeDetection::MULTIPLE_EXAMPLES,
42
+ 'target' => k,
43
+ 'items' => [defined_value, additional_value].sort! { |a, b| a.to_s <=> b.to_s },
44
+ }
45
+ )
46
+ end
47
+ end
48
+ end
49
+
50
+ alt_typed_examples.select { |k, _| single_events.include?(k) }.protect_merge!(event_typed_examples)
51
+ end
52
+
53
+ private
54
+
55
+ def all_files
56
+ Dir.glob(@added_examples_dir.join('**/*.json')) + Dir.glob(@examples_dir.join('**/*.json'))
57
+ end
58
+
59
+ def raw_examples
60
+ @raw_examples ||= all_files.map do |f|
61
+ example = JSON.parse(File.read(f))
62
+ alt_event_type = File.basename(f, '.json')
63
+ event_body = example['event'].presence || example
64
+ event_type = event_body['type']
65
+
66
+ [alt_event_type, event_type, event_body.key_ordered]
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end