Commit Graph

29 Commits

Author SHA1 Message Date
David Taylor 610364ff6d
FEATURE: Add support for slack message shortcuts for transcripts (#68)
Once configured, this adds a new item to the context menu of slack messages. When clicked, the menu item will generate a transcript and present the user with a custom "Post to Discourse" modal. This provides the same functionality as the existing slash-command interface, but is much more user friendly.
2021-04-22 18:50:11 +01:00
David Taylor 4261814162
FIX: Improve error handling for slack transcript generation (#63)
- Stop using `break` in a block - it doesn't work. The failure here was hidden because it was within a `defer` block, so would not cause a server error
- Refactor the error handling so that the error is passed back to Slack and displayed to the user
- Return specific error messages for user / message-history / message errors
- Tidy up the SlackCommandController to make all non-requestable methods private
- Add a test to ensure error messages are passed correctly to Slack
2021-03-01 19:07:31 +00:00
Robin Ward 509360e190 FIX: You can't return from a block, especially an async one 2020-06-26 11:52:00 -04:00
Penar Musaraj 6fcf381751 Rubocop redundant return fix 2019-11-14 15:03:49 -05:00
David Taylor 7e5dc5acc1 FIX: Allow slash commands to set rules in private groups
The Slack 'slash commands' API does not provide the user-friendly group name, so we must use the group ID. We could use the API to obtain the group name, but it would require adding additional scopes to the app.
2019-09-30 13:27:35 +01:00
Guo Xiang Tan ac288b9300 Add frozen string literal comment to files. 2019-05-13 10:37:49 +08:00
David Taylor 0ed6343874 Add basic support for thread transcripts 2018-04-08 03:22:58 +01:00
David Taylor 180011c097 Fix slash commands in private groups 2018-04-08 02:26:36 +01:00
David Taylor 5f555849e5 Replace `render nothing: true` with a JSON response. This has the added benefit of showing a “loading” message (#12)
render:nothing was producing an error 500 for some reason
2017-11-27 16:08:19 +08:00
Guo Xiang Tan efddfe1d9b Minor refactor. 2017-10-10 10:08:26 +08:00
David Taylor 47a6a89e5a Defer processing of transcripts to avoid timeouts 2017-09-15 23:12:02 +01:00
Guo Xiang Tan 16c5607fa4 Use `before_action` instead of `before_filter` for Rails 5.1 compatibility. 2017-09-04 10:44:32 +08:00
David Taylor 064079a4ed Add auto-detection of first message in conversation 2017-08-15 18:19:24 +03:00
David Taylor 3314721232 RSpec tests for slack transcript posting 2017-08-15 17:44:51 +03:00
David Taylor 658553e875 Refactor transcript posting 2017-08-15 10:26:03 +03:00
David Taylor 9604edaf88 Allow selecting first transcript message using a URL 2017-08-04 13:06:57 +01:00
David Taylor 9dc5445b7b Fix spec 2017-08-04 00:54:11 +01:00
David Taylor 12f3b96e02 Improve slack transcript posting UI with message buttons 2017-08-04 00:47:04 +01:00
David Taylor cfaef26e5d More modularisation for slack transcript generation 2017-08-03 17:24:49 +01:00
David Taylor 4d811ed83e Make transcript generation object-oriented 2017-08-03 15:48:33 +01:00
David Taylor 4f9ad4efef Correct rubocop offenses 2017-08-01 20:53:39 +01:00
David Taylor 5c93b7792c Add ‘view on slack’ link to transcripts 2017-07-26 19:51:44 +01:00
David Taylor 95f99e5fcf Improve slack transcript formatting 2017-07-26 19:27:22 +01:00
David Taylor 8ca4797797 Add transcript posting support to slack 2017-07-24 16:43:37 +01:00
David Taylor 694bf919ce Move slack command processor into common helper so it can be used by other providers 2017-07-19 16:57:33 +01:00
David Taylor ebb6fa947d Update slack provider to deal with new channel structure 2017-07-13 23:21:15 +01:00
David Taylor 062aa8d875 Add create/delete rule functionality to the slack ‘slash commands’ 2017-07-06 21:42:37 +01:00
David Taylor fd333d59b7 Add basic “slash command” functionality to the slack provider
Based on the existing slack plugin. Currently does not implement creating new rules or deleting rules.
2017-07-05 23:01:46 +01:00
David Taylor 2f6d6f0d54 Automatically mount provider’s engines at /chat-integration/{provider_name}
Provider controllers are automatically disabled when the provider is disabled (works the same way as plugin controllers)
2017-07-05 15:03:02 +01:00