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